2016-10-29 25 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

相關問題