Черный экран при возврате к воспроизведению видео в Android

В настоящее время я разрабатываю приложение ServeStream для Android и столкнулся с проблемой, которую не могу исправить. Мое приложение будет транслировать музыку и видео с помощью класса Android MediaPlayer. Я смоделировал свой класс по примеру, найденному по адресу:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html

Разница между этим примером и моим собственным кодом в том, что мой 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 (держатель) не приводит к повторному присоединению вновь созданного представления. Вместо видео отображается черный экран.

Есть ли у кого-нибудь обходной путь или решение этой проблемы. Буду признателен за любую помощь или совет.

13
задан Josnidhin 4 July 2012 в 09:41
поделиться