Мне нужно реорганизовать какой-то старый код, а я сейчас против стены. По-видимому, этот код использовался для загрузки другого вида видеоформата, но теперь он втягивается в.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. Но это будет другой вопрос.
Кэшируйте предыдущее представление во временной переменной и восстанавливайте 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();
}
}