출처 http://www.flexiblefactory.co.uk/flexible/?p=46
로컬에서 fileReference를 사용하여 MP3 파일을 파일열기 창을 띄워 가져올 때 아주 유용한 공용 라이브러리 이다. 보통 이미지를 로드해 비트맵을 뜨는 것 처럼, 사운드를 byte 데이터로 떠서 사용한다. 신기하다. 이러다간 앞으로 동영상도 이렇게 가능할런지도 모르겠다.
사용법은 간단하다. 당연한 거지만 제일 먼저 이 라이브러리 패키지를 src 경로 상에 둔다.
private var loader:MP3FileReferenceLoader;-
private var fileReference:FileReference;
-
public function MP3FileReferenceTest()
{
loader=new MP3FileReferenceLoader();
loader.addEventListener(MP3SoundEvent.COMPLETE,mp3LoaderCompleteHandler);
fileReference=new FileReference();
fileReference.addEventListener(Event.SELECT,fileReferenceSelectHandler);
stage.addEventListener(MouseEvent.CLICK,clickHandler);
}
private function clickHandler(ev:MouseEvent):void
{
fileReference.browse([new FileFilter("mp3 files","*.mp3")]);
}
private function fileReferenceSelectHandler(ev:Event):void
{
loader.getSound(fileReference);
}
private function mp3LoaderCompleteHandler(ev:MP3SoundEvent):void
{
ev.sound.play();
}
클래스 안에서 위와 같이 사용하면 된다. 스테이지를 크릭했을때 파일 열기로 MP3를 불러올수 있도록 마우스 클릭 이벤트를 등록하고, 핸들러에 파일레퍼런스의 browse() 메서드를 실행 시킨다.
파일 열기에서 MP3 파일을 찾아 선택하고 확인 버튼을 눌렀을때 로드 할 수 있도록 셀렉트 이벤트를 등록하고, 셀렉트 핸들러에서 MP3 파일레퍼런스 로더의 getSound() 매서드를 실행 시킨다. 그러면 이클래스가 알아서 로드해서 바이트 데이터로 떠준다.
컴플리트 이벤트를 등록하고 핸들러에서 로드한 사운드 객체에 접근해서 제어 하면 된다. 여기선 그냥 바로 플레이 시켰다. ev.sound 가 사운드 객체가 된다. 이걸 변수에 따로 저장해서 제어한다면 사운드를 자유자제로 다룰 수 있을 것이다.
MP3 플레이어 같은 어플리케이션을 만들 때 이 라이브러리를 사용하면 아주 유용할 것이다. 실제로도 그랬다.
'prev record' 카테고리의 다른 글
[2010.05.17.월요일] 안드로이드 기본 개념 (0) | 2013.07.14 |
---|---|
[2010.05.14.금요일] URLVariable (0) | 2013.07.14 |
[2010.05.12.수요일] 싱글톤 (0) | 2013.07.14 |
[2010.05.11.화요일] SharedObject (0) | 2013.07.14 |
[2010.05.10.월요일] FileReference (0) | 2013.07.14 |