抓住浏览器的音量事件

时间:2014-09-28 10:18:43

标签: javascript browser actionscript volume

我正在客户端运行外置闪存视频播放器,并希望始终保持静音。 我在玩外部swf(VPAID广告)时难以控制播放器的音量。 有没有办法通过JavaScript来判断浏览器的音量是否提高? 我没有使用HTML5。

由于

1 个答案:

答案 0 :(得分:1)

不,是的。 Afaig,没有全局'browserVolumeChange'事件,可以在页面上的一些swf改变音量等后捕获。

但是,你可以教你的播放器向javascript提交任何事件。对于卷,VPAID可能会调度AdVolumeChange,您可以对其进行响应。

将“AdVolumeChange”的事件侦听器添加到已加载的swf:

_vpaidSWF.addEventListener(YourVPAIDEventImpl.AdVolumeChange, onAdVolumeChange);

你不能确定你加载的swf是否实现得好,所以如果音量发生变化,你可能不会收到任何东西。您可以尝试自己找出,但请记住,swf可能只是一个包装器并加载另一个vpaid-swf,而这个加载另一个,a.s.o ......

也为此实现了侦听器:

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