2014-09-28 137 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