2016-03-14 4 views
-1

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

Спасибо,

+1

Что вы пробовали? Вам комфортно работать с SurfaceViews и/или визуализаторами видеоизображения ExoPlayer? –

+1

Что касается SurfaceView, это дубликат http://stackoverflow.com/questions/27817577/. Я не знаю, есть ли у ExoPlayer отличная функция захвата экрана. – fadden

ответ

0

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

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

player = ... 

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

}

0

Не испытано, взяты из: How to convert View to Bitmap in android?

Измененный входной параметр будет более общим.

protected Bitmap ConvertToBitmap(View layout) { 

    Bitmap map; 

    layout.setDrawingCacheEnabled(true); 

    layout.buildDrawingCache(); 

    return map=layout.getDrawingCache(); 

}