Открытие операции с веб-просмотром, содержащим видео HTML5, во второй раз

1

Я обслуживаю видео в веб-виде на Android с помощью Appcelerator Titanium. На iOS это работает как шарм. Но на Android это создает некоторые проблемы. Это происходит неправильно во второй раз, когда активность открывается с помощью веб-представления, содержащего элемент видео html5.

Шаги для воспроизведения:

(Также см. это видео youtube: http://www.youtube.com/watch?v=0MpSpfJNyOk)

В первый раз, когда вы открываете видео/мероприятие с видео html5, он показывает видео, и я могу его воспроизвести. Когда я закрываю окно/активность и открываю новое окно с другим видео, загружается веб-просмотр и загружается видеоигра html5. Но играть невозможно. При нажатии полноэкранной кнопки и одновременном нажатии кнопки воспроизведения/паузы видео начнет воспроизведение в полноэкранном режиме.

При приостановке видео до закрытия действия/окна видео в следующем окне может воспроизводиться.

Видео youtube показывает поведение на Samsung Galaxy Tab 3 10.1 "работает под управлением Android 4.2 с использованием этого тестового проекта https://dl.dropboxusercontent.com/u/1849335/WebviewTest.zip

Вы можете понять, что мне понадобилось время, чтобы понять этот шаблон:)

Контекст:

Я использую 3.2.GA Titanium SDK с этим исправлением (https://github.com/appcelerator/titanium_mobile/pull/5150). В этом изменении они зафиксировали, что метод onPause() всегда должен вызываться в веб-браузере при закрытии операции, иначе процессы плагина будут продолжать воспроизводиться.

Файлы, которые отвечают за это поведение: https://github.com/wienke/titanium_mobile/tree/master/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview https://github.com/wienke/titanium_mobile/blob/master/android/modules/ui/src/java/ti/modules/titanium/ui/WebViewProxy.java

Любопытно, что люди также видят это поведение без Titanium.

Теги:
webview
html5-video
titanium
appcelerator-mobile

1 ответ

0
Лучший ответ

Решение в конечном итоге было предоставлено в этом вопросе:

Android (Samsung S4) видеоролики HTML5

Добавление этого:

pause();
((AudioManager)activity.getSystemService(
                activity.AUDIO_SERVICE)).requestAudioFocus(
                        new OnAudioFocusChangeListener() {
                            @Override
                            public void onAudioFocusChange(int focusChange) {}
                        }, AudioManager.STREAM_MUSIC, 
                        AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);

для метода SDK onPause:

https://github.com/wienke/titanium_mobile/blob/master/android/modules/ui/src/java/ti/modules/titanium/ui/WebViewProxy.java#L427

исправлена ​​проблема.

Я подал дефект в Appcelerator. Надеюсь, они вскоре включится в их SDK.

Ещё вопросы

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