ऑटोप्ले चलाने के लिए रैपिड प्ले/पॉज़ और विफलता यह उपयोगकर्ताओं द्वारा मुझे रिपोर्ट करना शुरू हो गया। मैंने बग के लिए अपने कोड की खोज करने का एक गुच्छा बिताया, लेकिन ऐसा लगता है कि यह विशेष रूप से सफारी 11(नवीनतम) से संबंधित है।सफारी 11/यूट्यूब एपीआई बग।
YouTube IFrame एम्बेड एपीआई का एक साधारण उदाहरण उपयोग करते समय, सफारी तेजी से खेल के राज्यों के बीच स्विच करेगा और जब तक यह विराम पर समाप्त न हो जाए तब तक रोक देगा।
यह उदाहरण का सबसे अनुकूलित संस्करण नहीं है क्योंकि यहां कुछ अन्वेषण किया गया था कि यह क्या काम कर सकता है। मैं आगे और ऑटोप्ले छोड़ना चाहता था, लेकिन यह जिस तरह से माना जाता है, वह काम नहीं करेगा। मैंने start
और playVideo
का उपयोग करने का प्रयास किया जो YT API उदाहरणों को दस्तावेज किया गया है।
मैंने हाल ही में यह एक बग होने की पुष्टि की है जो बताती है कि उदाहरण में कुछ वर्बोज पैरामीटर क्यों हैं।
नोट्स:
- कभी कभी वीडियो आप कितनी बार ताज़ा के आधार पर खेलेंगे, लेकिन यह बहुत निराला है।
- ऑटोप्ले झंडे आमतौर पर विफल हो जाते हैं।
start
का उपयोग करके इस उदाहरण में ध्वज आगे बढ़ने के लिएstartSeconds
काम नहीं कर रहा था।- कोड उदाहरण अन्य ब्राउज़रों में काम करता है:
Chrome
,Opera
,Firefox
यहाँ आप सफारी के कंसोल, जो खिलाड़ी राज्य आतंक से पता चलता में देख सकते हैं क्या, अंत में 2 पर उतरने (रुका हुआ) की एक छवि है।
यहां एक कॉपी/पेस्ट कोड नमूना है जो बग को दोहराएगा। किसी भी HTML फ़ाइल में छोड़ और आप इसे सफारी 11 में
<style>
body, html, iframe {
position: absolute; left: 0; right: 0; top: 0; bottom: 0; width: 100%; height: 100%;
margin: 0;
padding: 0;
pointer-events: none;
}
</style>
<script>
var videoId = "9nwQ1F7oX-8";
var playerVars = {
autohide: 1,
autopause: 0,
autoplay: 1,
cc_load_policy: "0",
disablekb: 1,
enablejsapi: 1,
iv_load_policy: 1,
modestbranding: 1,
origin: "*",
rel: 0,
showinfo: 0,
start: 122,
version: 3
};
</script>
<iframe id="ytplayer"
frameborder="0"
allowfullscreen="1"
title="YouTube video player"
width="100%"
height="100%"
x-src="https://www.youtube.com/embed/9nwQ1F7oX-8?enablejsapi=1&origin=*&rel=0&version=3&iv_load_policy=3&modestbranding=1&showinfo=0&autohide=1&disablekb=1&autoplay=1&autopause=0&cc_load_policy=0&startSeconds=30&widgetid=1"
src="https://www.youtube.com/embed/9nwQ1F7oX-8?enablejsapi=1&origin=*&start=122">
</iframe>
<script>
window.onYouTubeIframeAPIReady = function() {
console.log("YouTube is ready!", videoId, playerVars);
var api = new YT.Player("ytplayer", {
width: "100%",
height: "100%",
videoId: videoId,
playerVars: playerVars,
events: {
onError: function(e) {
// 100 – The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.
// 101 – The owner of the requested video does not allow it to be played in embedded players.
// 150 – This error is the same as 101. It"s just a 101 error in disguise!
console.warn("An error has occurred", arguments);
},
onReady: function() {
// log
console.log("YouTube player is ready to use");
//
api.playVideo();
},
onStateChange: function(e) {
// log
console.log("YouTube state change ", e);
// Finished
if (e.data == 0) {
console.log("Finished");
}
// Playing
else if (e.data === YT.PlayerState.PLAYING) {
console.log("Playing");
}
// Pausing
else if (e.data === 2) {
console.log("Pausing");
}
// Buffering
else if (e.data === 3) {
console.log("Buffering");
}
}
}
});
}
</script>
<script src="https://www.youtube.com/iframe_api"></script>
मुझे थोड़ी सी स्थिति थी जहां सफारी के खिलाड़ी ने यूट्यूब प्ले बटन देखा। मैं प्रदर्शन के साथ आईफ़्रेम छुपा रहा था, लेकिन अस्पष्टता 0 को बदल दिया और जब यह 1 के लिए तैयार था। और फिर वीडियो को या तो ऑटोप्ले द्वारा खेला जा सकता है या –