2010년 3월 26일 금요일

#사운드를 이용한 mp3 플레이어_(1)Sound

사운드를 이용하기 위해서는 사운드의 재생, 로드, 정지, 볼륨 등의 기능을 담당하고 있는

각각의 클래스를 알아야한다. 사운드 관련 클래스는 flash.media 패키지에 안에 있다.

 

사운드의 기능을 담당하는 클래스들이 분리되어 있어 패키지안에 있는 클래스를 잘 알아봐야한다. 주로 쓰이는 클래스들을 간다히 정리해보자.

 

 flash.media.Sound  사운드 로드 및 재생
 flash.media.SoundChannel  사운드 채널 볼륨 제어
 flash.media.SoundLoaderContext  보안 / 버퍼링
 flash.media.SoundMixer  스트리밍사운드 제어
 flash.media.SoundTransform  패닝 및 볼륨 조절

참조

 

https://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/ 

 

http://help.adobe.com/ko_KR/AS3LCR/Flash_10.0/index.html?flash/display/Graphics.html&flash/display/class-list.html

 

1.  Sound 클래스

 

 

Sound 객체를 만들고 외부 MP3파일을 해당 객체로 로드할여 재생할 수 있으며, 사운드 스트림을 닫고, 스트림의 바이트 수 및 ID3 메타데이터에 대한 정보 같은 사운드 관련 데이터에 액세스할 수 있다. 한마디로 주요 기능은 외부 MP3 파일을 로드, 재생 한다는 것이다.

 

 

주요 기능인 로드, 재생 메서드를 살펴보자.

 

 

 

 

1.1 외부 사운드 파일 재생(mp3 포맷만 지원)

 

사운드를 재생하면 먼저 Sound객체를 이용하여 Sound 객체를 만들어야한다.

 

여기서 알아야 할 것은 외부에서 파일을 불러오려면 URLRequest 클래스를 이용해야한다.

위의 메서드에서 봤듯이 Sound 클래스에서 파일을 로드할 때 첫 번째 파라미터인 stream은
URLRequset로 되어있다.

 

URLRequest 클래스는 " 하나의 HTTP 요청에 포함된 모든 정보를 캡처 "하는 클래스이다.

 

캡쳐?..음..이해가 잘 안되는 군...그래서 야훔님께서 해주신 설명에 따르면...

 

# URLRequest 클래스

 

- 통신을 하기위해 기본적으로 갖춰야할 데이터를 저장하는 VO 클래스라고 볼 수 있다.

   

# VO 클래스(Value Object)

 

-  값을 저장 하기 위해 미리 Field를 만들어두고 값을 저장하게 끔 만들어진

   모델 데이터 클래스를 이야기한다.

 

잘 이해가 안될것 같아 다음번에 예제를 통해 다시 설명을 하겠다.

 

어쨌든 외부에서 파일을 가져오려면 URLRequest를 이용해서 가져와야한다는 것만 알아두자.

그럼 이제 하나씩 만들어보자.

 

플래시에서 파일 하나를 만들자.

 

 

 

 

 

위에서 처럼 플래시파일, AS파일, 음악 파일은 한 폴더안에 만들었다. 그러고나서 설정해야하는 것이 플래시파일 properties 에서 class로 연결해 주어야한다.

 

 

 

[code as3]
package
{
import flash.display.Sprite;
import flash.media.Sound;
import flash.net.URLRequest;

public class MyMusic extends Sprite
{
 public function MyMusic()
 {
  super();

  var file:URLRequest = new URLRequest("안녕나의사랑.mp3");

  var music:Sound = new Sound();
 
  music.load(file);
  music.play();
 }
}
}
[/code]

 

실행시켜보자. 노래가 잘 나오는가? 음..로드가 잘되었군.

 

13번째~18번째 라인을 이렇게도 쓸수있다.

 

[code as3]
var music:Sound = new Sound(new URLRequest("안녕나의사랑.mp3"));

music.play();
[/code]

 

댓글 없음:

댓글 쓰기