Я пытаюсь показать видеопоток, который начинается в одном действии моего приложения и сопровождает пользователя в других действиях в приложении без необходимости повторной подготовки.Небольшая пауза в изменении активности - это нормально, но перезапуск не должен.В одном действии все работает нормально, но при переключении действий MediaPlayer
не хочет подключаться к новому SurfaceHolder
.Звук работает прекрасно, хотя с небольшим заминкой.
Я пытался сделать это через подкласс SurfaceView
, инициализированный с контекстом приложения.(Перераспределение представлений контекста приложения между действиями, кажется, работает нормально, когда я вместо этого использую простые представления, такие как Button
, поэтому я думаю, что это не проблема.) В конструкторе, который я создаю объект MediaPlayer, установите слушателей и источник данныхпоток MP4 через HTTP - и да, я проверил, что могу воспроизводить его при обычном использовании MediaPlayer), и позвонил prepareAsync
.В моем методе SurfaceHolder.Callback
surfaceCreated
я называю setDisplay
и (если игрок закончил подготовку) start
.В методе surfaceDestroyed
я вызываю pause
.И в обратном вызове prepare, если поверхность уже создана, я вызываю start.
Я не знаю, что делать в этой точке.Есть идеи?