Youtubeプレーヤーで実験していますが、デフォルトではミュートにできません。
function onPlayerReady() {
player.playVideo();
// Mute?!
player.mute();
player.setVolume(0);
}
最初からミュートするにはどうすればよいですか?
更新:
JavaScript Player APIは非推奨 。
代わりに iframe Embeds を使用します。
player.mute()
は正常に動作することがわかりました。パラメーターenablejsapi=1
のみが必要でした。プレーヤーの開始にエラーがあったため、フィドルでの最初のテストは機能しませんでした。次の作品。
HTML:
<iframe id="ytplayer" type="text/html" src="https://www.youtube-nocookie.com/embed/zJ7hUvU-d2Q?rel=0&enablejsapi=1&autoplay=1&controls=0&showinfo=0&loop=1&iv_load_policy=3" frameborder="0" allowfullscreen></iframe>
JS:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('ytplayer', {
events: {
'onReady': onPlayerReady
}
});
}
function onPlayerReady(event) {
player.mute();
player.playVideo();
}
enablejsapi=1
をポイントしたGagandeep SinghとAnton Kingの功績
上記のすべての答えは、何らかの理由でうまくいきませんでした。 Youtube APIでメソッドを使用したり、減価したりする必要があったテーマは、奇妙なwordpressかもしれません。
// Loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Replaces the 'ytplayer' element with an <iframe> and
// YouTube player after the API code downloads.
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: '390',
width: '640',
videoId: 'YOUR_VIDEO_ID',
playerVars: {
autoplay: 1,
controls: 1,
disablekb: 1,
hl: 'ru-ru',
loop: 1,
modestbranding: 1,
showinfo: 0,
autohide: 1,
color: 'white',
iv_load_policy: 3,
theme: 'light',
rel: 0
},
events: {
'onReady': onPlayerReady,
}
});
}
function onPlayerReady(event){
player.mute();
}
<div id="ytplayer"></div>
YouTube APIでは、これをマークアップ内で_<script>
_タグ内で直接実行するか、名前付き関数としてではなく標準のdocument.onLoad()
ネイティブリスナー経由で実行する必要があることに注意することが重要です。
それ以外の場合、onYouTubeIframeAPIReady()
関数をDOMにネイティブにバインドしません。
以下のコードを試してください
var youtubeplayer = iframe.getElementById('ytplayer');
youtubeplayer .setVolume(0);
そして、以下はあなたのフィドル更新版です、
注:動画のURLにenablejsapi = 1を含める必要があります
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('ytplayer', {
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
player.playVideo();
// Mute?!
//player.mute(); instead of this use below
event.target.mute();
//player.setVolume(0);
}
[〜#〜] demo [〜#〜] これが役に立てば幸いです...