2015-08-24 280 views
0

所以我有一個iframe的「src」指向某些音樂的URL。該iframe被隱藏,並自動播放音樂。如何添加一個按鈕來使音樂靜音?將iframe中播放的音樂靜音?

<iframe hidden="true" frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 
     src="http://urlofmusic"></iframe> 

請注意,音樂來自外部網站。該URL也不指向特定的文件。它只是網站提供的外部鏈接。

+0

工作版本可以提供您的代碼,以便我們可以看到你在做什麼? – MattD

+0

是指向某些音頻文件的'http:// urlofmusic'? ('.mp3')這個文件與你的頁面在同一臺服務器上嗎?如果這兩個條件都是真的,那麼你可以通過document.querySelector('iframe')。contentDocument.querySelector('video')'來訪問它,然後只需要將它的'muted'屬性改爲'true'它甚至可以調用它的'pause()'方法。 – Kaiido

+0

音樂是通過HTML5標籤還是Flash播放的? – bonesbrigade

回答

1

只有這樣,才能靜音的iframe中刪除它來自html。您可以稍後克隆它以取消靜音。但是你不能暫停和恢復,就像停下來玩一樣。
HTML

<div id = "iframe_contain"> 
    <iframe width="0" height="0" hidden="hidden" id="iframe" 
     src="http://www.youtube.com/embed/y6120QOlsfU?autoplay=1&loop=1"> 
    </iframe> 
</div> 
<a href="javascript:" id="mute">Mute</a><a href="javascript:" id="unmute">Unmute</a> 

JS

(function(){ 
    $("#mute").click(mute); 
    $("#unmute").click(unmute); 
    //backup iframe 
    var iframe_bk; 
    //play status 
    var status = 1; 
    function mute(){ 
     if(status!=1) return; 
     var iframe = $("#iframe"); 
     iframe_bk = iframe.clone(); 
     iframe.remove(); 
     status = 0; 
    } 
    function unmute(){ 
     if(status!=0) return; 
     if(iframe_bk){ 
      $("#iframe_contain").append(iframe_bk); 
      iframe_bk = null; 
      status = 1; 
     } 
    } 
})(); 

我使用jQuery和這裏jsfiddle

1

你想用「控制」參數調整音頻標籤內

<audio controls> 
<source src="nameofsong.ogg" type="audio/ogg"> 
<source src="nameofsong.mp3" type="audio/mpeg"> 
audio tag not supported message optional 
</audio> 

您可以替換文件名歌曲的URL在src

+0

您會指定它嗎? – Lixu

+0

你可以參考我上面的版本。該網址並未指向任何音樂文件。相反,它是由外部網站提供的整個iframe的地址。 – Lixu