【问题标题】:catching browser's volume event捕捉浏览器的音量事件
【发布时间】:2014-11-22 21:37:42
【问题描述】:

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

谢谢

【问题讨论】:

  • 请更新您的标签。添加动作脚本,javascript ...

标签: javascript browser actionscript volume


【解决方案1】:

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

但是,您可以教您的播放器将任何事件提交到 javascript。对于音量,VPAID 可能会发送AdVolumeChange,您可以对此做出反应。

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

_vpaidSWF.addEventListener(YourVPAIDEventImpl.AdVolumeChange, onAdVolumeChange);

您无法确定您已加载的 swf 是否执行良好,因此如果音量发生变化,您可能不会收到任何内容。您可以尝试自己找出答案,但请记住,该 swf 可能只是一个包装器并加载另一个 vpaid-swf,而这个加载另一个,as.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 -.-

总结:Afaig 没有默认事件,所以自己创建吧。

希望这对您有所帮助:)


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

【讨论】:

    猜你喜欢
    • 2012-08-14
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多