Html5 видео на Android 4: играть в полноэкранном режиме, а затем перенаправлять на другую веб-страницу - не работает

Я разрабатываю html5 страницу для смартфонов Android 4 с одним 3gpp (или mp4) видео, которое должно автоматически запускаться в полноэкранном режиме при открытии; когда конец видео должен перенаправляться на другой URL.

Какой-то googling сказал мне, что автозапуск больше не разрешен на Android 4, поэтому я решил отобразить изображение плаката, которое пользователь должен нажать, чтобы начать видео. Тогда:

  • вызывается полноэкранный режим
  • видео должно автоматически запускаться (действительно, он был запущен пользователем, нажав на изображение плаката).
  • когда завершение видео для воспроизведения Android должно выйти из полноэкранного режима
  • и, наконец, перенаправить пользователя на страницу anothe.

2 и 3 не работают: после вызова полноэкранного режима пользователь выполнил еще один "click", чтобы запустить видео, и когда видео заканчивается exitfullscreen не работает (экран черный, и пользователю нужно нажать клавишу "назад" на телефоне, чтобы выйти с телефона-плеера).

Похоже, video.webkitExitFullScreen() и video.play() игнорируются на Android 4.

Это HTML-код html5 и код javascript, который я использую, не могли бы вы помочь мне указать на решение?

Спасибо!

    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width; initial-scale=1.0" />
    <meta name="description" content="" />
    <title>test</title>

    <script type="text/javascript">

        function videoEnd() {
            var video = document.getElementById("video");
            video.webkitExitFullScreen();
            document.location = "http://www.google.com";
        }

        function playVideo() {
            var video = document.getElementById("video");
            video.addEventListener('ended', videoEnd, false);
            video.webkitEnterFullScreen();
            video.play();
        }

    </script>
</head>
<body>
    <video id="video" poster="../img/image.jpg" onclick="playVideo();">
        <source src="../video/videoname.3gp" type="video/3gpp" />
    </video>
</body>

Ответы

Ответ 1

У меня есть предложение, которое может вам помочь,

Это применимо для веб-представления Android. Приложение не является веб-приложением Android.

Вы можете либо создать андроид-соединение, либо клиент веб-представления Android, передать значения в качестве переменной (Query String) и воспроизвести видео с родного Android, где у вас есть все элементы управления.

Пожалуйста, найдите код для воспроизведения видео.

enter code here

public void videoPlayer(String path, String fileName, boolean autoplay){
getWindow().setFormat(PixelFormat.TRANSLUCENT);
//the VideoView will hold the video
VideoView videoHolder = new VideoView(this);
//MediaController is the ui control howering above the video (just like in the default youtube player).
videoHolder.setMediaController(new MediaController(this));
//assing a video file to the video holder
videoHolder.setVideoURI(Uri.parse(path+"/"+fileName));
//get focus, before playing the video.
videoHolder.requestFocus();
if(autoplay){
    videoHolder.start();
}

}

Если вы хотите реализовать вид яркой бухты, тогда свяжитесь со мной, я помогу для HTML 5

Приветствия

Ответ 2

Я знаю, что это старый пост, но кто-то может это искать. Лично я просто скрываю видео-элемент (с помощью простого jquery $videoElement.hide()) после завершения видео, что автоматически возвращает меня в браузер.

Мы протестировали это на нескольких мобильных устройствах (iOS и Android).

У меня все еще есть еще одна проблема, которая заключается в том, что теперь мой браузер выглядит полноэкранным (что вызывает другие проблемы в моем случае).

Ответ 3

У меня недавно была аналогичная проблема. После нескольких часов поиска в Интернете, вот как я сделал это:

Перед вызовом метода "play()" используйте метод "load()". Итак, в вашем коде:

    function playVideo() {
        var video = document.getElementById("video");
        video.addEventListener('ended', videoEnd, false);
        video.webkitEnterFullScreen();
        video.load();
        video.play();
    }

I; ve teste на Android 2.2, 2.3 и IPhone 3, и он работает. Однако, похоже, он не работает на Android 4.0.

P.S.

Если вы хотите перенаправить, когда воспроизведение видео заканчивается, используйте это событие:

var video = document.getElementById("video");
video.addEventListener("ended",doSomething,true);

function doSomething() {
     //your redirect code here
}

Ответ 4

В более поздних версиях android программный video.play() требует явного разрешения от WebView. например,

settings.setMediaPlaybackRequiresUserGesture(false);