如何自动播放静音的 Youtube 视频 (IFrame API)
How do I automatically play a Youtube video (IFrame API) muted?
<iframe class="youtube-player" type="text/html" src="http://www.youtube.com/embed/JW5meKfy3fY?wmode=opaque&autohide=1&autoplay=1&volume=0&vol=0&mute=1" frameborder="0"><br /></iframe>
视频未静音!我希望第一次播放时音量为 0...
Youtube 不提供通过 url 参数屏蔽(见 http://code.google.com/apis/youtube/player_parameters.html(。
为此,您必须使用 javascript。 有关详细信息,请参阅 http://code.google.com/apis/youtube/js_api_reference.html。
但是,请注意上面链接的页面上的警告:"YouTube JavaScript Player API 的弃用于 2015 年 1 月 27 日宣布。YouTube Flash嵌入也被弃用。有关详细信息,请参阅弃用策略。请将您的应用程序迁移到 IFrame API,它可以智能地使用客户端支持的任何嵌入式播放器 - HTML (( 或 Flash ((。
目录
<iframe class="youtube-player" id="player" type="text/html" src="http://www.youtube.com/embed/JW5meKfy3fY?wmode=opaque&autohide=1&autoplay=1&enablejsapi=1" frameborder="0"><br /></iframe>
请注意 URL 中的 enableJSAPI=1。
爪哇语
var player = iframe.getElementById('player');
player.mute();
更新
以前的代码存在一些问题,不适用于当前的 API(playerVars 语法错误(。这是更新的代码。您可能需要修改所需的参数。
<div id="player"></div>
<script>
// 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: '100%',
width: '100%',
playerVars: {
autoplay: 1,
loop: 1,
controls: 0,
showinfo: 0,
autohide: 1,
modestbranding: 1,
vq: 'hd1080'},
videoId: '1pzWROvY7gY',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
// 3. The API will call this function when the video player is ready.
function onPlayerReady(event) {
event.target.playVideo();
player.mute();
}
var done = false;
function onPlayerStateChange(event) {
}
function stopVideo() {
player.stopVideo();
}
</script>
player_api将于 2015 年 6 月 25 日弃用。对于播放YouTube视频,有一个新的api IFRAME_API
它看起来像下面的代码:
<!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
<div id="player"></div>
<script>
// 2. 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);
// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
event.target.playVideo();
}
// 5. The API calls this function when the player's state changes.
// The function indicates that when playing a video (state=1),
// the player should play for six seconds and then stop.
var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING && !done) {
setTimeout(stopVideo, 6000);
done = true;
}
}
function stopVideo() {
player.stopVideo();
}
</script>
试试这个它工作正常
<html><body style='margin:0px;padding:0px;'>
<script type='text/javascript' src='http://www.youtube.com/iframe_api'></script><script type='text/javascript'>
var player;
function onYouTubeIframeAPIReady()
{player=new YT.Player('playerId',{events:{onReady:onPlayerReady}})}
function onPlayerReady(event){player.mute();player.setVolume(0);player.playVideo();}
</script>
<iframe id='playerId' type='text/html' width='1280' height='720'
src='https://www.youtube.com/embed/R52bof3tvZs?enablejsapi=1&rel=0&playsinline=1&autoplay=1&showinfo=0&autohide=1&controls=0&modestbranding=1' frameborder='0'>
</body></html>
您可以选择视频播放器,然后设置其音量:
var mp = iframe.getElementById('movie_player');
mp.setVolume(0);
来源: http://userscripts.org/scripts/review/49366
更新 2021 以在桌面/移动设备上循环播放和自动播放视频(在 iPhone X - Safari 上测试(。
我正在使用onPlayerStateChange
事件,如果视频结束,我会再次播放视频。引用 YouTube API 中的 onPlayerStateChange 事件。
<div id="player"></div>
<script>
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '100%',
width: '100%',
playerVars: {
autoplay: 1,
loop: 1,
controls: 0,
showinfo: 0,
autohide: 1,
playsinline: 1,
mute: 1,
modestbranding: 1,
vq: 'hd1080'
},
videoId: 'ScMzIvxBSi4',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
event.target.mute();
setTimeout(function() {
event.target.playVideo();
}, 0);
}
function onPlayerStateChange(event) {
if (event.target.getPlayerState() == 0) {
setTimeout(function() {
event.target.playVideo();
}, 0);
}
}
</script>
var video1;
function onYouTubeIframeAPIReady(){
player = new YT.Player("video1", {
videoId: "id-number",
width: 300,
height: 200,
playerVars: {
"autoplay": 1, // and 0 means off
"controls": 1,
"showinfo": 0,
"modestbranding": 0,
"loop": 1,
"fs": 0,
"cc_load_policy": 0,
"iv_load_policy": 3,
},
events: {
'onReady': onPlayerReady
}
});
}
function onPlayerReady(event) {
event.target.mute();
event.target.setVolume(0); //this can be set from 0 to 100
}
请记住,声音在IE和Safari中不会被静音。
接受的答案效果很好。我想要更多的控制,所以我在脚本中添加了几个函数:
function unmuteVideo() {
player.unMute();
return false;
}
function muteVideo() {
player.mute();
return false;
}
function setVolumeVideo(volume) {
player.setVolume(volume);
return false;
}
这是 HTML:
<br>
<button type="button" onclick="unmuteVideo();">Unmute Video</button>
<button type="button" onclick="muteVideo();">Mute Video</button>
<br>
<br>
<button type="button" onclick="setVolumeVideo(100);">Volume 100%</button>
<button type="button" onclick="setVolumeVideo(75);">Volume 75%</button>
<button type="button" onclick="setVolumeVideo(50);">Volume 50%</button>
<button type="button" onclick="setVolumeVideo(25);">Volume 25%</button>
现在您可以更好地控制声音...查看参考网址了解更多信息:
YouTube IFrame Player API
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 如何用低音量自动启动Youtube视频(iframe)
- 如何使用angularjs在iframe中嵌入来自数据库的视频链接
- 我如何才能包含一个iframe视频,这样它就不会't负载
- 如何使用javascript(或jQuery)将youtube视频添加到iframe(基于web的RTE)
- Iframe youtube多个视频跟踪
- 如何在iFrame中捕获嵌入式YouTube视频的点击
- 如何在我的幻灯片上设置iframe视频
- Iframe视频(Youtube)滑动
- 如何添加id和额外的参数到一个放大弹出iframe与youtube视频,所以我可以控制与API youtube播放器
- 单击链接时播放iframe视频
- 如何定位“隐藏”的 iframe?(应用程序:链接到嵌入“隐藏的海报图像”嵌入的 Youtube 视频的起始位置)
- YouTube 360 视频 iframe 在移动浏览器中不起作用
- Youtube视频播放按钮在Android网络视图中的视频iframe中不起作用
- Youtube API如何在视频结束时从0秒开始播放视频?Iframe,Javascript
- 如何自动播放静音的 Youtube 视频 (IFrame API)
- 在父元素的悬停出口动态实例化/暂停Youtube视频(iFrame API)
- Javascript快速静音youtube视频iframe
- 使用jQuery从YouTube视频iFrame链接中提取ID
- 在页面的一部分上播放Flash视频 - iframe与DIV和包含在PHP中