최근 수정일 : 2008년 10월 21일
수정 내역 : 5초 앞으로, 뒤로 추가 일시 정지 및 정지 추가, 아직은 스톱이 비정상적으로 처리되고 있음.
ID3태그 또한 제대로 가져오지 못하고 있음, 다음 추가 예정 볼륨
최근 수정일 : 2008년 10월 20일
수정 내역 : PAUSE 까지 구현
최초 작성일 : 2008년 10월 20일 계속 업데이트 됩니다. 얍얍 !
사운드 관련 중요 클래스 소개
- Sound : 사운드 오브젝트 생성 및 MP3파일의 메타 데이터 접속을 가능하게 해준다.
- SoundChannel : 각각의 다른 채널로 불러드린 사운드의 통제 및 위치 조절
- SoundLoaderContext : 사운드에 대한 정보 관련
- SoundTransform : 사운드 볼륨 조절 관련
- SoundMixer : 전체적인 사운드 통제
- ID3Info : ID3 메타데이터 정보 반영
- Microphone : 컴퓨터에 장착된 마이크 소리를 캡춰하도록 도와준다.
- 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); //로딩
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(); //정지
}
}
}
}
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 |