2012-01-15 3 views

ответ

60

Youtube не обеспечивают отключение звука через url (см. http://code.google.com/apis/youtube/player_parameters.html).

Для этого вам необходимо использовать javascript. см. http://code.google.com/apis/youtube/js_api_reference.html для деталей.

Однако, пожалуйста, обратите внимание на предупреждение на странице, приведенной выше: «27 января 2015 года было объявлено об отказе от API-интерфейса JavaScript-браузера YouTube. Вложения YouTube Flash также устарели. Дополнительные сведения см. В политике устаревания. Перенесите свои приложения в IFrame API, который может разумно использовать любой встроенный плеер - HTML() или Flash() - клиент поддерживает. "

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 в URL.

Javascript

var player = iframe.getElementById('player'); 
player.mute(); 

Update

Предыдущий код имел некоторые проблемы и не работает с текущей 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

Вы можете выбрать видео плеер, а затем установить его объем:

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

Источник: http://userscripts.org/scripts/review/49366

+1

Спасибо, но это не работает. http://jsfiddle.net/69uh2/ что я делаю неправильно? – TIMEX

+0

Mute лучше, с ним вы можете включить звук без изменения оригинальной громкости. –

+1

пытаясь исправить вашу скрипку TIMEX и пришлось прекратить слушать всю песню haha ​​... – Robbo

4

The player_api устареет 25 июн 2015. Для воспроизведения видео Youtube есть новый апи 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>

Смежные вопросы