VideoView теряет задний стек

1

Мне нужно реорганизовать какой-то старый код, а я сейчас против стены. По-видимому, этот код использовался для загрузки другого вида видеоформата, но теперь он втягивается в.MP4, что означает, что WebView, с которым он звонил, больше не может воспроизводить видео. Учитывая чрезвычайно ограниченное количество времени, которое у меня есть, я попытался клонить в VideoView, чтобы воспроизвести видео. Видео загружается и воспроизводится, но стек активности теряется при запуске VideoView.

Я перезаписал класс MediaController, чтобы, по крайней мере, смог захватить событие back key. Мой вопрос: как загрузить этот VideoView и сохранить стек активности?

Я ценю ваше время и терпение.

Вот код, вызывающий VideoView:

public void onListItemClick(ListView l, View v, int position, long id) {
    Video video =  (Video) this.getListAdapter().getItem(position);
    track("Video", "VOD", video.title);
    String url = video.link.substring(29);
    if(DEBUG_MODE)
        Log.d("TDF", url);
    url = Kriptonic.getEncryptedURL(url);

    videoView = new VideoView(_myActivity);
    _myActivity.setContentView(videoView);

    Uri uri = Uri.parse(url);
    mc = new CustomMediaController(_myActivity);
    videoView.setMediaController(mc);

    videoView.setVideoURI(uri);
    videoView.start();

}

РЕДАКТИРОВАТЬ:

Я решил это, не ленившись. Просто создание такого видео, не привязанное к его собственной деятельности, было просто неправильным кодированием. Я создал простую деятельность, начал замысел в вышеприведенном фрагменте, чтобы назвать это действие, и все в порядке.

... Для всего, кроме ICS. Он не будет работать в ICS. Но это будет другой вопрос.

Теги:
videoview

1 ответ

0

Кэшируйте предыдущее представление во временной переменной и восстанавливайте ContentView до его нажатия.

mainView = _myActivity.getContentView();
videoView = new VideoView(_myActivity);
_myActivity.setContentView(videoView);

При нажатии кнопки "Назад"

@Override
public void onBackPressed() {
    if (mainView != null) {
        _myActivity.setContentView(mainView);
        mainView = null;
    } else {
        super.onBackPressed();
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню