Автозапуск видео с YouTube не работает на Chrome в устройстве iPhone - PullRequest
0 голосов
/ 10 января 2019

if($('.explore-video-btn').length > 0) {
		var video_id = youtube_parser($('.explore-video-btn').attr('data-video-url'));
	}
	
	var tag = document.createElement('script');
	tag.src = "https://www.youtube.com/iframe_api";
	var firstScriptTag = document.getElementsByTagName('script')[0];
	firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

	//Holds a reference to the YouTube player
	

	//this function is called by the API
	if(document.getElementsByClassName('explore-video-btn').length !== 0) {
		document.getElementsByClassName('explore-video-btn')[0].addEventListener('click', function() {
			onYouTubePlayerAPIReady();
		});
	}

	var player;
	function onYouTubePlayerAPIReady() {
	
		setTimeout(function() {
		
			player = new YT.Player('youtube-iframe', {
				videoId: video_id,
				playerVars: {'rel': 0, 'showinfo': 0, 'ecver': 2, 'autoplay': 1},
				events: {
					'onReady': onPlayerReady,
					'onStateChange': onPlayerStateChange
				}
			});
			//subscribe to events
			
		}, 200);
	}
	
	function onPlayerReady(event) {
		event.target.mute();
		event.target.playVideo();
	}

	function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.ENDED) {
			event.target.stopVideo();
		}
	}
	

Я использовал YouTube API для автоматического воспроизведения видео, он корректно работает на устройствах Android в браузере Chrome, но не запускается автоматически на устройствах iphone в браузере Chrome. Я обнаружил предупреждение документа API YouTube, например «Предупреждение. Чтобы предотвратить нежелательные загрузки по сотовым сетям за счет пользователя, встроенные медиафайлы не могут автоматически воспроизводиться в Safari на iOS - пользователь всегда запускает воспроизведение.» .

В предупреждении говорится, что автозапуск не работает на сафари в ios, но не упоминает хром в ios. Пожалуйста, помогите мне найти решение. Спасибо.

1 Ответ

0 голосов
/ 10 января 2019

Потому что это не проблема браузера. Это про iOS.

Политики для видео Запуск в iOS.

<video autoplay> elements will now honor the autoplay attribute, for elements which meet the following conditions:
<video> elements will be allowed to autoplay without a user gesture if their source media contains no audio tracks.
<video muted> elements will also be allowed to autoplay without a user gesture.
If a <video> element gains an audio track or becomes un-muted without a user gesture, playback will pause.
<video autoplay> elements will only begin playing when visible on-screen such as when they are scrolled into the viewport, made visible through CSS, and inserted into the DOM.
<video autoplay> elements will pause if they become non-visible, such as by being scrolled out of the viewport.

См. Полный список этих ограничений на официальном сайте.

Нет, вы не можете от IFrame api:

Соображения для мобильных устройств Автозапуск и воспроизведение сценариев HTML5 элемент, только в некоторых мобильных браузерах (таких как Chrome и Safari) позволяет воспроизвести, если оно инициировано взаимодействием пользователя (например, нажав на игрока). Вот выдержка из Apple документация:

"Предупреждение. Для предотвращения нежелательных загрузок по сотовым сетям на за счет пользователя, встроенные медиа не могут воспроизводиться автоматически в Safari на iOS - пользователь всегда запускает воспроизведение. "

Из-за этого ограничения функции и параметры, такие как автозапуск, playVideo (), loadVideoById () не будут работать во всех мобильных средах.

Из официального документа API YouTube IFrame Player

Вывод -> Нет, не можешь

...