public static PlayerSurfaceHolder create(SurfaceView surfaceView) { PlayerViewSurfaceHolder surfaceHolder = new PlayerViewSurfaceHolder(); surfaceView.getHolder().addCallback(surfaceHolder); return new PlayerSurfaceHolder(surfaceView, null, surfaceHolder); }
private void attachToSurface(PlayerSurfaceHolder playerSurfaceHolder) { playerSurfaceHolder.attach(exoPlayer); }
public void attach(Player.VideoComponent videoPlayer) { if (containsSurfaceView()) { videoPlayer.setVideoSurfaceView(surfaceView); } else if (containsTextureView()) { videoPlayer.setVideoTextureView(textureView); } else { throw new IllegalArgumentException("Surface container does not contain any of the expected views"); } }
@Test public void givenPlayerSurfaceHolderContainsNoView_whenAttachingVideoPlayer_thenThrowsException() { thrown.expect(IllegalArgumentException.class); PlayerSurfaceHolder playerSurfaceHolder = new PlayerSurfaceHolder(null, null, null); playerSurfaceHolder.attach(videoPlayer); } }
@Test public void whenCreatingPlayerSurfaceHolderWithSurfaceView_thenAttachCallbackToSurfaceHolder() { PlayerSurfaceHolder.create(surfaceView); verify(surfaceHolder).addCallback(any(PlayerViewSurfaceHolder.class)); }
@Override public void attach(PlayerView playerView) { containerView = playerView.getContainerView(); buggyVideoDriverPreventer.preventVideoDriverBug(this, containerView); listenersHolder.addVideoSizeChangedListener(playerView.getVideoSizeChangedListener()); listenersHolder.addStateChangedListener(playerView.getStateChangedListener()); PlayerSurfaceHolder playerSurfaceHolder = playerView.getPlayerSurfaceHolder(); surfaceRequester = playerSurfaceHolder.getSurfaceRequester(); }
@Test public void whenCreatingPlayerSurfaceHolderWithTextureView_thenAttachSurfaceTextureListenerToTextureView() { PlayerSurfaceHolder.create(textureView); verify(textureView).setSurfaceTextureListener(any(PlayerViewSurfaceHolder.class)); }
SurfaceRequester surfaceRequester = mock(SurfaceRequester.class); given(playerView.getPlayerSurfaceHolder()).willReturn(playerSurfaceHolder); given(playerSurfaceHolder.getSurfaceRequester()).willReturn(surfaceRequester); given(playerView.getStateChangedListener()).willReturn(stateChangeListener); given(playerView.getVideoSizeChangedListener()).willReturn(videoSizeChangedListener);
@Override protected void onFinishInflate() { super.onFinishInflate(); View.inflate(getContext(), R.layout.noplayer_view, this); videoFrame = findViewById(R.id.video_frame); shutterView = findViewById(R.id.shutter); surfaceView = findViewById(R.id.surface_view); subtitleView = findViewById(R.id.subtitles_layout); playerSurfaceHolder = PlayerSurfaceHolder.create(surfaceView); }
public static PlayerSurfaceHolder create(TextureView textureView) { PlayerViewSurfaceHolder surfaceHolder = new PlayerViewSurfaceHolder(); textureView.setSurfaceTextureListener(surfaceHolder); return new PlayerSurfaceHolder(null, textureView, surfaceHolder); }
@Before public void setUp() { ExoPlayerCreator exoPlayerCreator = mock(ExoPlayerCreator.class); given(exoPlayerForwarder.drmSessionEventListener()).willReturn(drmSessionEventListener); given(exoPlayerForwarder.mediaSourceEventListener()).willReturn(mediaSourceEventListener); given(bandwidthMeterCreator.create(anyLong())).willReturn(defaultBandwidthMeter); given(trackSelectorCreator.create(OPTIONS, defaultBandwidthMeter)).willReturn(trackSelector); given(exoPlayerCreator.create(drmSessionCreator, drmSessionEventListener, mediaCodecSelector, trackSelector.trackSelector())).willReturn(exoPlayer); given(rendererTypeRequesterCreator.createfrom(exoPlayer)).willReturn(rendererTypeRequester); facade = new ExoPlayerFacade( bandwidthMeterCreator, androidDeviceVersion, mediaSourceFactory, trackSelectorCreator, exoPlayerCreator, rendererTypeRequesterCreator ); given(surfaceView.getHolder()).willReturn(mock(SurfaceHolder.class)); surfaceViewHolder = PlayerSurfaceHolder.create(surfaceView); textureViewHolder = PlayerSurfaceHolder.create(textureView); }