최근 수정일 : 2008년 10월 21일
수정 내역 : 5초 앞으로, 뒤로 추가 일시 정지 및 정지 추가, 아직은 스톱이 비정상적으로 처리되고 있음.
ID3태그 또한 제대로 가져오지 못하고 있음, 다음 추가 예정 볼륨

최근 수정일 : 2008년 10월 20일
수정 내역 : PAUSE 까지 구현

최초 작성일 : 2008년 10월 20일 계속 업데이트 됩니다. 얍얍 !





 사운드 관련 중요 클래스 소개

- Sound : 사운드 오브젝트 생성 및 MP3파일의 메타 데이터 접속을 가능하게 해준다.
- SoundChannel : 각각의 다른 채널로 불러드린 사운드의 통제 및 위치 조절
- SoundLoaderContext : 사운드에 대한 정보 관련
- SoundTransform : 사운드 볼륨 조절 관련
- SoundMixer : 전체적인 사운드 통제
- ID3Info : ID3 메타데이터 정보 반영
- Microphone : 컴퓨터에 장착된 마이크 소리를 캡춰하도록 도와준다.


 사운드 관련 BASE Source

//변수 선언
var audioLocation:String;      //음악 소스 위치
var URLReq:URLRequest;      //URL 오브젝트
var snd1:Sound;        //신규 Sound 오브젝트

audioLocation = "c:\\test.mp3";   
URLReq = new URLRequest(audioLocation);
snd1 = new Sound();

snd1.load(URLReq);  //로딩
snd1.play();             //재생


  사운드 버퍼를 사용한 경우


package{
 
 //imports
 import flash.net.URLRequest;
 import flash.media.Sound;
 import flash.media.SoundLoaderContext;
 import flash.display.Sprite;
 
 public class mp3_load extends Sprite{
  
  private var audioLocation:String; 
  private var URLReq:URLRequest;  
  private var snd1:Sound;    
  private var buffer:SoundLoaderContext; //버퍼 정의
  
  public function mp3_load(){
   audioLocation = "파일위치";
   URLReq = new URLRequest(audioLocation);
   snd1 = new Sound();
     
   buffer = new SoundLoaderContext(5000); //오디오 버퍼 생성(1초 = 1000)
   //버퍼를 사용하여 파일 로딩
   snd1.load(URLReq, buffer);   
   snd1.play(5000,2); //play(시작위치{초}, 반복회수)
  }  
 } 
}

  사운드 PAUSE 구현하기


package{
 
 //imports
 import flash.net.URLRequest;
 import flash.media.Sound;
 import flash.media.SoundLoaderContext;
 import flash.media.SoundChannel;
 import flash.display.MovieClip;
 import flash.events.KeyboardEvent;
 
 public class mp3_load extends MovieClip{
  
  private var audioLocation:String; 
  private var URLReq:URLRequest;  
  private var snd1:Sound;    
  private var buffer:SoundLoaderContext; //버퍼 정의
  private var sc:SoundChannel;
  private var pauseStatus:Boolean;
  private var playHeadPosition:Number;
  
  public function mp3_load(){
   audioLocation = "파일위치";
   URLReq = new URLRequest(audioLocation);
   snd1 = new Sound();
     
   buffer = new SoundLoaderContext(5000); //오디오 버퍼 생성(1초 = 1000)
   //버퍼를 사용하여 파일 로딩
   snd1.load(URLReq, buffer);   
   sc=snd1.play(0,1); //play(시작위치{초}, 반복회수), return SoundChannel
  }
  
  //실제 Sound에서는 Pause가 존재 하지 않음.
  //play시 SoundChannel을 확인 한 다음 처리한다.
  public function pauseSound(){
   if(pauseStatus){ //Pause유무를 구분한다.
    sc = snd1.play(playHeadPosition,1); //기존에 저장된 위치부터 재생한다.
    pauseStatus=false;
   }else{
    playHeadPosition = sc.position; //재생 위치 기록
    pauseStatus=true;
    sc.stop(); //정지
   }
  }
 } 
}


'etc > old' 카테고리의 다른 글

Context 와 ThreadLocal  (0) 2008.10.27
Tender Love  (0) 2008.10.21
MECE(Mutually Exclusively, Collectively Exhaustive)  (0) 2008.10.13
SMTP 설정 및 메일 BEAN 만들기  (1) 2008.10.02
FMS3에서 신호처리 방식  (0) 2008.10.01

+ Recent posts