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);