Я работаю над видео-приложением, где пользователь может смотреть видео, открывать его в полноэкранном режиме, если необходимо, и вернуться к стандартным представлениям и так далее. Я использовал ExoPlayer и недавно переключился на MediaPlayer по умолчанию из-за предстоящего объяснения.Перемещение SurfaceView через действия
Мне нужно изменить «на лету» поверхность плеера. Мне нужно использовать один и тот же плеер для отображения видео среди действий, без задержки для отображения изображения. Используя Exoplayer, декодер ждет следующего ключевого кадра для рисования пикселей на пустой поверхности.
Так что мне нужно использовать ту же поверхность, поэтому мне не нужно каждый раз нажимать новую поверхность, просто привяжите поверхность к родительскому элементу View. Поверхность может оставаться неизменной, но если я отсоединяю SurfaceView, чтобы извлечь ее из другой активности и снова подключить ее, внутренняя поверхность будет уничтожена.
Итак, есть способ сохранить одну и ту же поверхность в разных видах деятельности? С услугой?
Я знаю, что вопрос немного странный, я объясню указанную часть запроса в комментарии.
Как TextureView прибыл в API14, я попробую его посмотреть, работает ли он, но мне нужно поддержать minSDK 10. Спасибо за ваш ответ, свяжусь с вами, если это будет работать. –
После некоторой работы я, наконец, закончил свой Extented ExoPlayer, который работает с формой API> = JellyBean и TextureView. У меня все еще какой-то crach (например, <10% при обработке поверхности). В основном я думаю о плохом управлении поверхностью. Посмотрите здесь игрока https://gist.github.com/HugoGresse/669284a16ea25124228b –