2

Я использую TextureView с MediaPlayer как элемент внутри ListView. Когда пользователь прокручивает вниз/вверх, а видео исчезает с экрана, я хотел бы продолжить играть где-нибудь, скажем, в правом нижнем углу. Я использую то же самое TextureView, просто извлеките его из списка и добавьте в основной макет. MediaPlayer тоже такой же. Чтобы уничтожить и воссоздать TextureView.TextureView: эффект мерцания, когда MediaPlayer setSurface

Проблема - когда я устанавливаю поверхность для игрока, прокрутка замерзает на половину секунды. любая помощь оценена.

Мои onSurfaceTextureAvailable:

@Override 
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, 
    int height) { 

    Surface s = new Surface(surface); 
    mPlayer.setSurface(s); 
} 
+0

Вы выполнили трассировку профилирования метода, чтобы увидеть, где эта половина секунды идет? – fadden

+0

'MediaPlayer._setVideoSurface()' занимает 272,5 мс – aktober

ответ

0

MediaPlayer API медленно на некоторых устройствах, вы не должны использовать его для вашей ситуации.

Вместо этого вы должны использовать Ijkplayer (IjkPlayer).