【发布时间】:2016-06-24 09:03:48
【问题描述】:
好的,这已经被问过很多次了——但 Youtube 似乎每隔一天就会改变一次。我找不到强制嵌入 Youtube 从头开始播放高清源的方法。切换到高清总是在 5-10 秒后发生。
不再起作用的方法:
- 在 iframe src 中添加
&hd=1参数 - 将
&vd=hd720或&vd=hd1080参数添加到iframe src。此处描述:Force youtube embed to start in 720p - 在 html 嵌入代码中将 iframe 尺寸更改为
width="1280" heigh="720",然后使用 CSS 将 iframe 缩小/放大到父 div。此处描述:http://thenewcode.com/717/Force-Embedded-YouTube-Videos-To-Play-In-HD 和此处:How to force youtube to play HD videos
唯一可能的方法是使用 Youtube JavaScript API,如下所述: http://biostall.com/the-100-guaranteed-method-to-get-youtube-iframe-embeds-playing-in-hd-by-default/
// 1. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// 2. This function creates an <iframe> (and YouTube player) after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '1280',
width: '720',
videoId: 'E37YNMYlKvo',
events: {
'onReady': onPlayerReady
}
});
}
// 3. The API will call this function when the video player is ready.
function onPlayerReady(event) {
player.setPlaybackQuality('hd1080'); // Here we set the quality (yay!)
event.target.playVideo(); // Optional. Means video autoplays
}
<div id="player"></div>
但是:我想使用简单的 iframe 嵌入,因为视频将通过 wordpress oembed 功能嵌入。
有没有办法为简单的 iframe 嵌入运行 player.setPlaybackQuality('hd1080'); 函数?
【问题讨论】:
标签: javascript iframe youtube embed