Graphics Programming

로컬 mp3 파일 재생하기 본문

Season 1/플래시

로컬 mp3 파일 재생하기

minseoklee 2011. 10. 23. 13:53

플래시 플레이어 10.3까지는 FileReference#browse(), load()를 이용해서 로컬의 mp3 파일 데이터에 접근해도 Sound 클래스로 직접 재생할 수가 없었다. 그래서 MP3FileReferenceLoaderLib라는 라이브러리를 써야 했는데, 이번에 플래시 플레이어 11 API에 Sound#loadCompressedDataFromByteArray() 메서드가 추가되어 내장 API만으로도 로컬 mp3 파일을 재생할 수 있다.

package 
{
import flash.display.Sprite;
import flash.events.Event;
import flash.media.Sound;
import flash.net.FileFilter;
import flash.net.FileReference;
/**
* ...
* @author codeonwort
*/
public class Main extends Sprite 
{
private var fr:FileReference = new FileReference
public function Main():void 
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void 
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
stage.addEventListener("mouseDown", stage_mouseDown)
}
private function stage_mouseDown(e:Event):void {
fr.addEventListener("select", file_selected)
fr.browse([new FileFilter("mp3", "*.mp3")])
}
private function file_selected(e:Event):void {
fr.addEventListener("complete", load_complete)
fr.load()
}
private function load_complete(e:Event):void {
var snd:Sound = new Sound
snd.loadCompressedDataFromByteArray(fr.data, fr.data.length)
snd.play()
}
}
}

 
Comments