2012-01-15 32 views

答えて

60

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に移行してください.Interface APIは、HTML()やFlash()などの埋め込みプレーヤーをインテリジェントに使用できます。 URL内の

Htmlの

<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">&lt;br /&gt;</iframe> 

ありますのでご注意くださいenablejsapi = 1。

Javascriptを

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>

+3

それは "iframe is定義されていません"? – TIMEX

+0

何が間違っているのか教えていただけますか? http://jsfiddle.net/9RjzU/ありがとうございました – TIMEX

+2

私は正しいコードでフィドルを更新しました。 http://jsfiddle.net/9RjzU/3/ –

3

...音量が0時に最初の戯曲になりたい:

var mp = iframe.getElementById('movie_player'); 
mp.setVolume(0); 

出典:http://userscripts.org/scripts/review/49366

+1

おかげでこれを試してみて、それが動作しません。 http://jsfiddle.net/69uh2/私は間違って何をしていますか? – TIMEX

+0

ミュートは元の音量を変えずにミュートを解除することができます。 –

+1

あなたのフィドルTIMEXを修正しようとすると、全体の歌hahaを聴くために停止しなければならなかった... – Robbo

4

player_apiがプレイユーチューブの動画の場合は6月25日、2015年 に廃止される予定の新しい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> 
0

受け入れられた答えはかなり良いです。

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> 

今、あなたは音のより多くの制御を持っています...より多くの参照URLをチェックし :

YouTube IFrame Player API

0

var video1; 
 

 
function onYouTubeIframeAPIReady(){ 
 
\t player = new YT.Player("video1", { 
 
\t \t videoId: "id-number", 
 
\t \t width: 300, 
 
\t \t height: 200, 
 
\t \t playerVars: { 
 
\t \t \t "autoplay": 1, // and 0 means off 
 
\t \t \t "controls": 1, 
 
\t \t \t "showinfo": 0, 
 
\t \t \t "modestbranding": 0, 
 
\t \t \t "loop": 1, 
 
\t \t \t "fs": 0, 
 
\t \t \t "cc_load_policy": 0, 
 
\t \t \t "iv_load_policy": 3, 
 
\t \t \t }, 
 
\t \t events: { 
 
\t \t  'onReady': onPlayerReady 
 
\t \t } 
 
\t }); 
 
    } 
 

 
function onPlayerReady(event) { 
 
    event.target.mute(); 
 
    event.target.setVolume(0); //this can be set from 0 to 100 
 
}
は音がIEとSafariでミュートされないことに注意してください。

4

は、その作業罰金

<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>

関連する問題