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

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

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

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

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

 

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

вот код:

  $(document).ready(function() { $("#video1").bind("click", function() { var vid = $(this).get(0); if (vid.paused) { vid.play(); } else { vid.pause(); } }); });  

благодаря

Джо

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

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

например

  

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

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

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

  

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

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

На этот вопрос отвечает другой вопрос. Автозапуск html5-видео с помощью браузера android 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"); } } 

Важное примечание. Имейте в виду, что если в настройках Chrome включена функция сохранения данных Google Chrome, функция автовоспроизведения будет отключена.

В 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

   

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

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

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

  

Я упростил Javascript, чтобы запустить видео.

  var bg = document.getElementById ("bg"); function playbg() { bg.play(); } 
    

Может добавить muted тег.

  

https://developers.google.com/web/updates/2016/07/autoplay

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

  • Прямая трансляция HTML5
  • Воспроизведение локального (жесткого диска) видеофайла с помощью тега HTML5?
  • HTML5 - видеоролик mp4 не воспроизводится в IE9
  • Обнаруживать, когда видео HTML5 заканчивается
  • Дождитесь загрузки видео в формате HTML5
  • Как играть в видео html5 в браузерах IE8
  • iPad Safari mobile, похоже, игнорирует положение z-индексации для видеоэлементов html5
  • масштаб HTML5 Видео и разбить соотношение сторон для заполнения всего сайта
  • chrome может воспроизводить видео html5 mp4, но html5test сказал, что хром не поддерживает видеокодек mp4
  • Давайте будем гением компьютера.