2014-09-28 138 views
2

我在客戶端運行外部Flash視頻播放器,並且希望始終保持靜音。 我在播放外部swf(VPAID廣告)時難以控制播放器的音量。 有沒有通過JavaScript來判斷瀏覽器的音量是否升高的方法? 我沒有使用HTML5。捕捉瀏覽器的音量事件

謝謝

+0

請更新您的標籤。添加動作,JavaScript ... – zyexal 2014-09-28 20:03:09

回答

1

不,是的。 Afaig沒有全球性的'browserVolumeChange'事件,這是在頁面上的一些swf改變了音量後可捕捉的。

但是,您可以教您的播放器向javascript提交任何事件。對於音量,VPAID可能會發送AdVolumeChange,您可以對此進行響應。

添加事件偵聽器「AdVolumeChange」到您加載的SWF:

_vpaidSWF.addEventListener(YourVPAIDEventImpl.AdVolumeChange, onAdVolumeChange); 

你不能肯定,你已經加載的實施得當,SWF,所以也許你不會得到任何東西,如果音量已經改變。你可以嘗試自己找出,但請記住,瑞士法郎可能只是一個包裝,並加載另一個vpaid瑞士法郎,這一個加載另一個,aso ..

也爲此實現監聽器:

記住
private function onAdVolumeChange(e:YourVPAIDEventImpl):void { 
    // here you can send custom notice to your js via ExternalInterface or <----- ! 
    // try to mute/whatever directly 
} 

請發送跟蹤爲(UN)靜音等等...!

設置VPAID的卷。您可以實現類似的東西:

public function set volume(arg:Number):void { 
    _volume = arg; 
    if(_vpaidSWF == null) 
     return; 
    try { 
     _vpaidSWF.adVolume = arg; 
    } catch(e:*){} 
} 

如果你想在默認情況下靜音播放器,監聽AdImpressionAdVideoStart等,並設置音量爲零...... 但正如之前所說的,不幸的是你可以」不要確定這些事件會到達。
SWF了其第一個事件是AdVideoMidpoint -.-

摘要:Afaig沒有違約事件,所以自己創建它。

希望這會在某種程度上有所幫助:)


編輯
我真的想在這裏有一個VPAID標籤;)
http://www.iab.net/vpaid