通常官方提供的Mp3播放API在SWF中 只能播放指定路径下MP3文件。并没有提供类似于加载任意位置图片的特定API。受于一些局限,在网上寻得一开源库MP3FileReferenceLoaderLib,能够通过FileReference来导入任意位置的mp3文件并进行播放。

 



package mp3Test
 {
 import flash.events.Event;
 import flash.events.MouseEvent;
 import flash.media.Sound;
 import flash.media.SoundChannel;
 import flash.net.FileFilter;
 import flash.net.FileReference;

import org.audiofx.mp3.MP3FileReferenceLoader;
 import org.audiofx.mp3.MP3SoundEvent;

/**
 *导入外部MP3
 *
 */
 public class Mp3Test extends MainV
 {
 private var mMp3Loader:MP3FileReferenceLoader;
 private var mFileRef:FileReference;
 private var mFileFilter:FileFilter;
 private var mSound:Sound;
 private var mSoundChannel:SoundChannel;
 private var mStartTime:Number = 0;
 private var mIsPlaying:Boolean;
 public function Mp3Test()
 {
 mMp3Loader = new MP3FileReferenceLoader( );
 mFileRef = new FileReference( );
 mFileFilter = new FileFilter( '.mp3','*.mp3');

 mFileRef.addEventListener( Event.SELECT,onSoundSelectedHandler );
 mMp3Loader.addEventListener( MP3SoundEvent.COMPLETE,onSoundLoadedHandler );

this.playBtn.addEventListener( MouseEvent.CLICK,onPlaySoundHandler );
 this.stopBtn.addEventListener( MouseEvent.CLICK,onStopSoundHandler );
 this.btnScan.addEventListener( MouseEvent.CLICK,onScanSoundHandler );
 }
 private function onPlaySoundHandler( e:MouseEvent ):void
 {
 if( mSound != null && !mIsPlaying )
 {
 mSoundChannel = mSound.play( mStartTime );
 mIsPlaying = true;
 }
 }
 private function onStopSoundHandler( e:MouseEvent ):void
 {
 if( mSoundChannel != null && mIsPlaying )
 {
 mStartTime = mSoundChannel.position;
 mSoundChannel.stop( );
 mIsPlaying = false;
 }
 }
 private function onScanSoundHandler( e:MouseEvent ):void
 {
 mFileRef.browse( [ mFileFilter ] );
 }
 private function onSoundSelectedHandler( e:Event ):void
 {
 mMp3Loader.getSound( mFileRef );
 }
 private function onSoundLoadedHandler( e:MP3SoundEvent ):void
 {
 if( mSoundChannel != null )
 mSoundChannel.stop( );
 mSound = e.sound;
 mSoundChannel = mSound.play( );
 this.infoT.text = mFileRef.name;
 mIsPlaying = true;
 }
 }
 }

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Free Web Hosting