我正在客户端运行外置闪存视频播放器,并希望始终保持静音。 我在玩外部swf(VPAID广告)时难以控制播放器的音量。 有没有办法通过JavaScript来判断浏览器的音量是否提高? 我没有使用HTML5。
由于
答案 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:*){}
}
如果您希望播放器默认静音,请聆听AdImpression
,AdVideoStart
等,并将音量设为零...
但如前所述,遗憾的是,您无法确定这些事件是否会到来。
swf的第一个事件是AdVideoMidpoint
-.-
摘要:Afaig没有默认事件,因此请自行创建。
希望这在某种程度上有所帮助:)
编辑
我真的想在这里有一个VPAID标签;)
http://www.iab.net/vpaid