Как автовоспроизвести 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(); } }); });  

благодаря

Джо

14 Solutions collect form web for “Как автовоспроизвести HTML5 mp4-видео на Android?”

Я не думаю, что автовоспроизведение работает на 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 () заблокирован. Они хотят, чтобы пользователь инициировал его, чтобы можно было сохранить полосу пропускания.

Interesting Posts

Что означает BigInteger без ограничения?

Значок воспроизведения Unicode ▶ отображается в заголовке страницы, неправильно отображается в моем браузере Firefox

Шифрование zip действительно плохо?

Позиции и размеры JPanel изменяются в соответствии с экранами

Предполагаемые массивы размера: Colon vs. asterisk – DIMENSION (:) arr vs. arr (*)

Является ли оценка короткого замыкания гарантированной в C ++, как в Java?

Являются ли словари упорядоченными в Python 3.6+?

Обнаружить и извлечь url из строки?

Генерация числа случайных чисел в C ++

Обновление до Ubuntu 9.10 от Ubuntu 9.04

Каковы наилучшие методы для вложенных ресурсов REST

Объясните ленивую оценочную причуду

Добавление записей в раздел реестра с использованием командного файла

Алгоритм преобразования двоичного кода IEEE 754 в строку?

Отсутствует ” / extras / google / google_play_services / libproject” после обновления до версии 30

Давайте будем гением компьютера.