2014-11-04 76 views
0

我创建了一个视频播放器到我动态地从另一个组件加载视频如何卸载音频:当视频被删除

<?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 { 
    videoUrl = YOUTUBE_EMBED_URL+videoAddress; 
}   

    ]]> 
</mx:Script>  
<mx:SWFLoader id="swfLoader" source="{videoUrl}" width="800" height="600" /> 
</mx:Canvas> 

下面是如何加载视频:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600"> 
<mx:Script> 
    <![CDATA[ 
     private var videoPlayer:VideoPlayer; 
     protected function button1_clickHandler(event:MouseEvent):void{   
      if(this.videoPlayer != null){ 
       this.videoPlayer.removeAllChildren(); 
      } 
      videoPlayer = new VideoPlayer(); 
      videoPlayer.videoAddress = "_OBlgSz8sSM";     
      this.addChild(videoPlayer);    
     }   
     protected function button2_clickHandler(event:MouseEvent):void{   
      if(this.videoPlayer != null){ 
       this.videoPlayer.removeAllChildren(); 
      } 
      videoPlayer = new VideoPlayer(); 
      videoPlayer.videoAddress = "tvmIEP_BP9Q";     
      this.addChild(videoPlayer);    
     } 
    ]]> 
</mx:Script> 
<mx:HBox top="600"> 
    <mx:Button label="Button 1" click="button1_clickHandler(event)" />  
    <mx:Button label="Button 2" click="button2_clickHandler(event)" />  
</mx:HBox> 
</mx:Application> 

我遇到的问题是,当我加载另一个视频时,旧视频被删除,新视频加载,但旧音频不断播放。

如何删除音频?

+0

你在哪里使用'videoUrl'var? – akmozo 2014-11-05 10:18:57

+0

videoUrl是加载到swfLoader的源代码 – SimonRH 2014-11-05 11:19:47

回答

0

我读了后,所讨论garbage collection

对我来说,解决办法是下面添加到init()函数: SoundMixer.stopAll();