Как сделать скриншот из SurfaceView?

Я воспроизводю некоторые видео с помощью ExoPlayer и хочу, чтобы текущее изображение отображалось на моем SurfaceView, как мне это сделать?

Спасибо,


person user1796260    schedule 14.03.2016    source источник
comment
что ты уже испробовал? Устраивают ли вас средства визуализации SurfaceView и/или ExoPlayer?   -  person Jon Adams    schedule 18.03.2016
comment
Что касается SurfaceView, это дубликат stackoverflow.com/questions/27817577 . Я не знаю, есть ли у ExoPlayer какая-нибудь изящная функция захвата экрана.   -  person fadden    schedule 28.04.2016


Ответы (2)


Если вы используете SurfaceView, вы не можете получить снимок экрана. Однако вы можете использовать TextureView для воспроизведения видео, а затем вы можете получить снимок экрана из TextureView.

Вот пример кода для использования TextureView, в его обратном вызове onSurfaceTextureAvailable() вы можете получить SurfaceTexture, затем вы можете использовать этот SurfaceTexture для создания Поверхность для ExoPlayer

player = ...

public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
   ...
   player.setSurface(new Surface(mSurfaceTexture));
   ...

}

person Ming C    schedule 27.04.2016