捕获浏览器's卷事件

catching browser's volume event

本文关键字:事件 浏览器      更新时间:2023-09-26

我在客户端运行一个外部flash视频播放器,希望一直保持静音。在玩外部swf(VPAID广告)时,我很难控制播放器的音量。有没有办法通过JavaScript来判断浏览器的音量是否提高了?我没有使用HTML5。

感谢

否和是。目前,没有全局"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
}

请记住发送跟踪以进行(取消)静音等!!!

为VPAID设置音量。你可以实现这样的东西:

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

如果你想让播放器默认静音,请收听AdImpressionAdVideoStart等,并将音量设置为零。。。但正如前面所说,不幸的是,你不能确定这些事件是否会到来
得到的swf的第一个事件是AdVideoMidpoint-。-

摘要:没有默认事件,所以自己创建。

希望这在某种程度上有所帮助:)


编辑
我真的很想在这里有一个VPAID标签;)
http://www.iab.net/vpaid