Intereting Posts
Являются ли Android BroadcastReceivers запущенными в новом потоке? Почему нет метода Service.onStop? Проблема с коммутатором Java: выражения case должны быть постоянными выражениями Отображать изображение из byteArray Разница между ApplicationInfo и PackageInfo? Как я могу прочитать текстовый файл с SD-карты в Android? Как проверить код, созданный для сохранения / восстановления жизненного цикла активности? Ошибка при запуске эмулятора Android: FB :: flushWindowSurfaceColorBuffer: дескриптор окна 0x4 не найден Загружать изображения из дискового кэша с помощью Picasso, если в автономном режиме Проект Android, ссылающийся на «нормальный» проект java в eclipse, поскольку обновление инструментов sdk 17 Android Studio: автоматическая сборка, подобная Eclipse Как отключить автоматическое отображение консолей АБР в Eclipse? Android PopupWindow с помощью Tooltip Arrow Создание значков iOS и Android в Кордове / PhoneGap Проверка версии Android

Как автовоспроизвести HTML5 mp4-видео на Android?

Я разработал мобильную страницу asp.net для воспроизведения видео mp4.

Я знаю, что iOS отключила функцию автовоспроизведения, чтобы свести к минимуму пропускную способность пользователя, поэтому как я могу автоматически запускать HTML5 mp4-видео на Android?

Я уже положил autoplay в HTML5-код, но он не работает.

Ниже приведен мой код:

<video autoplay controls id='video1' width='100%' poster='images/top_icon.png' webkitEnterFullscreen poster preload='true'> <source src='http://192.xxx.xxx.xx/XXXXVM01.mp4' type='video/mp4; codecs='avc1.42E01E, mp4a.40.2' > </video> 

Более того, я исправил проблему, которую пользователь нажимает на наложение изображения, может воспроизводить видео. Спасибо, Karthi

Вот код:

 <script type="text/javascript"> $(document).ready(function() { $("#video1").bind("click", function() { var vid = $(this).get(0); if (vid.paused) { vid.play(); } else { vid.pause(); } }); }); </script> 

благодаря

Джо

Solutions Collecting From Web of "Как автовоспроизвести HTML5 mp4-видео на Android?"

Я не думаю, что автовоспроизведение работает на Android, но получение видео для воспроизведения может быть раздражающе сложным. Я предлагаю прочитать эту статью: Создание HTML5-видео на телефонах Android .

Вы можете добавить атрибуты «приглушенный» и «автовоспроизведение», чтобы включить автовоспроизведение для устройств Android.

например

 <video id="video" class="video" autoplay muted > 

Я использовал следующий код:

 // get the video var video = document.querySelector('video'); // use the whole window and a *named function* window.addEventListener('touchstart', function videoStart() { video.play(); console.log('first touch'); // remove from the window and call the function we are removing this.removeEventListener('touchstart', videoStart); }); 

Кажется, что нет способа автозапуска.

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

Android на самом деле имеет API для этого! Метод setMediaPlaybackRequiresUserGesture () . Я нашел его после многого рывка в видео-автозапуске и много попыток взлома с SO. Вот пример из blair vanderhoof :

 package com.example.myProject; import android.os.Bundle; import org.apache.cordova.*; import android.webkit.WebSettings; public class myProject extends CordovaActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.init(); // Set by <content src="index.html" /> in config.xml super.loadUrl(Config.getStartUrl()); //super.loadUrl("file:///android_asset/www/index.html"); WebSettings ws = super.appView.getSettings(); ws.setMediaPlaybackRequiresUserGesture(false); } } 

В Android 4.4 и выше вы можете удалить необходимость жестов пользователя, пока компонент HTML5 Video живет в вашем собственном WebView

 webview.setWebChromeClient(new WebChromeClient()); webview.getSettings().setMediaPlaybackRequiresUserGesture(false); 

Чтобы получить видео для автовоспроизведения, вам все равно нужно добавить автовоспроизведение к элементу видео

 <video id='video' controls autoplay> <source src='http://192.xxx.xxx.xx/XXXXVM01.mp4' type='video/mp4; codecs='avc1.42E01E, mp4a.40.2' > </video> 

Автовоспроизведение работает только во второй раз. На android 4.1+ у вас должно быть какое-то пользовательское событие, чтобы получить первую игру () для работы. Как только это произошло, автозапуск работает.

Это значит, что пользователь признает, что использует полосу пропускания.

На этот вопрос отвечает другой вопрос. Автозапуск html5 с помощью браузера android 4

В Android 4.1 и 4.2 я использую следующий код.

  evt.initMouseEvent( "click", true,true,window,0,0,0,0,0,false,false,false,false,0, true ); var v = document.getElementById("video"); v.dispatchEvent(evt); 

Где html

  <video id="video" src="sample.mp4" poster="image.jpg" controls></video> 

Это хорошо работает. Но в Android 4.4 это не работает.

Похоже на ответ KNaito, следующее делает трюк для меня

 function simulateClick() { var event = new MouseEvent('click', { 'view': window, 'bubbles': true, 'cancelable': true }); var cb = document.getElementById('player'); var canceled = !cb.dispatchEvent(event); if (canceled) { // A handler called preventDefault. alert("canceled"); } else { // None of the handlers called preventDefault. alert("not canceled"); } } 

Вот плагин для PhoneGap, который решил проблему для меня: https://build.phonegap.com/plugins/1031

Я просто включил его в свой файл config.xml

 <video autoplay controls id='video1' width='100%' poster='images/top_icon.png' webkitEnterFullscreen poster preload='true'> <source src='http://192.xxx.xxx.xx/XXXXVM01.mp4' type='video/mp4; codecs='avc1.42E01E, mp4a.40.2' > </video> 

Chrome отключил его. https://bugs.chromium.org/p/chromium/issues/detail?id=159336 Даже игра jQuery play () заблокирована. Они хотят, чтобы пользователь инициировал его, чтобы можно было сохранить полосу пропускания.