我一直在解决从Youtube上播放音频的问题。我制作了一个简单的视频播放器,我在下面包含
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" >
<mx:Script>
<![CDATA[
[Bindable] public var videoAddress:String
private static const YOUTUBE_EMBED_URL:String = "http://www.youtube.com/v/";
[Bindable] public var videoUrl:String;
private function init():void {
//The following two line are needed to unload the youtube audio
SoundMixer.stopAll()
swfLoader.unloadAndStop(true)
videoUrl = YOUTUBE_EMBED_URL+videoAddress;
}
]]>
</mx:Script>
<mx:SWFLoader id="swfLoader" source="{videoUrl}" width="640" height="387" />
</mx:Canvas>
我发现需要以下两行来阻止音频播放:
SoundMixer.stopAll()
swfLoader.unloadAndStop(true)
一切进展顺利,直到我进入我全屏幕项目的一部分:
stage.displayState = StageDisplayState.FULL_SCREEN;
以前播放和停止的所有音频片段立即开始播放! 我假设我有一个垃圾收集问题,但不知道如何解决它。
答案 0 :(得分:0)
当全屏模式处于活动状态时,您可能需要添加一个事件监听器来重建声音
stage.addEventListener(Event.FULLSCREEN, onFullScreen);
private function onFullScreen(e:Event):void{
SoundMixer.stopAll();
swfLoader.unloadAndStop(true);
}