В настоящее время я разрабатываю приложение android для приложения ServeStream, с которым я столкнулся, и проблемы, которые я не могу исправить. Мое приложение будет передавать музыку и видео с помощью класса android MediaPlayer. Я смоделировал свой класс после примера, найденного по адресу:
Разница между этим примером и моим собственным кодом заключается в том, что мой MediaPlayer запускается в службе, которая позволяет ему продолжать воспроизведение в фоновом режиме. Проблема с примером кода Android заключается в том, что если я просматриваю видео, и я покидаю текущее окно/активность (т.е. нажмите кнопку меню и т.д.) И вернусь к активности воспроизведения, я получаю черный экран, но все же получаю аудио с видео который играет.
Когда моя активность воспроизведения первоначально создана, выполняется код, показанный ниже. Этот код по существу создает представление, используемое для воспроизведения, а затем привязывает его к медиаплееру:
setContentView(R.layout.mediaplayer_2);
mPreview = (SurfaceView) findViewById(R.id.surface);
holder = mPreview.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
...
mMediaPlayer.setDisplay(holder);
Важной линией является mMediaPlayer.setDisplay(держатель), поскольку она связывает текущий вид/отображение с медиаплеером. Взгляд ( "держатель" ) уничтожается, когда вы покидаете действие. После возврата к активности и воссоздания представления, выполнение mMediaPlayer.setDisplay(владельца) снова не появляется, чтобы повторно присоединить вновь созданное представление. Вместо видео отображается черный экран.
У кого-нибудь есть обходное решение или решение для этой проблемы. Я был бы признателен за любую помощь или совет.