2016-10-29 18 views
1

我不能使用SimpleExoPlayer,因为我需要一个具有某些参数的视频渲染器。我发现,我可以通过视频和音频渲染器的ExoPlayer实例:如何传递非简单的Exoplayer(2.x)SurfaceView?

final ExoPlayer player = ExoPlayerFactory.newInstance(new Renderer[]{videoRenderer, audioRenderer}, trackSelector, loadControl); 

ExoPlayer可是没有方法setVideoSurfaceView()

如何将SurfaceView传递给非简单的ExoPlayer?

回答

0

看来,这个版本ExoPlayer一个都需要使用C.MSG_SET_SURFACE创造ExoPlayer.ExoPlayerMessage一个实例,并通过方法sendMessage()把它传递给玩家。

0

您可以通过传递消息通过ExoPlayer实例对各种ExoPlayer组件进行配置更改。您可以使用sendMessagesblockingSendMessages方法将消息发送到组件。在你的情况下,你可以使用你的SurfaceView实例设置SurfacevideoRenderer。例如:

player.sendMessage(videoRenderer, 
       MediaCodecVideoTrackRenderer.MSG_SET_SURFACE, 
       surfaceView.getHolder().getSurface()); 
+0

我也尝试从先前版本的ExoPlayer的示例复制此行。但是参数'MediaCodecVideoTrackRenderer'不可用,只有参数'MediaCodecVideoRenderer'可用,它没有消息'MSG_SET_SURFACE'。有没有办法让这个参数可用? – wilkas