var sound:Sound = new Sound();
var req:URLRequest = new URLRequest(url);
sound.load(url)
사운드 데이터 (mp3)가 그대로 들어 오도록 수정하고 싶습니다. 특히 mp3는 스트림 암호를 사용하여 암호화되므로 데이터를 해독하려고합니다. 어떤 종류의 이벤트를 사용하여 가능합니까?액션 스크립트 사운드 데이터 수정 실시간
var sound:Sound = new Sound();
var req:URLRequest = new URLRequest(url);
sound.load(url)
사운드 데이터 (mp3)가 그대로 들어 오도록 수정하고 싶습니다. 특히 mp3는 스트림 암호를 사용하여 암호화되므로 데이터를 해독하려고합니다. 어떤 종류의 이벤트를 사용하여 가능합니까?액션 스크립트 사운드 데이터 수정 실시간
기존 오디오 스트림을 처리하려면 사운드 객체를로드하지 않고 출력 Sound 객체를 설정해야합니다. 그런 다음 해당 사운드 객체에서 SampleDataEvent.SAMPLE_DATA를 수신합니다.이 객체는 버퍼가 비어있는 Sound 객체가 재생되기 시작할 때 시작됩니다. 당신은 스테레오 PCM 데이터를 버퍼의 입력해야합니다 (부동 소수점 숫자의 쌍.)
그 번호를 얻으려면, 귀하의 의견 Sound 객체 (당신은 단순히에 소리라고 한 일에 Sound.extract() 방법을 사용하여 위의 코드)를 사용하여 PCM 데이터를 ByteArray에 읽습니다. 원하는 ByteArray의 데이터를 처리하여 출력 버퍼에 저장합니다.
var input : Sound;
var output : Sound;
// ... set up your input sound source ... //
output = new Sound();
output.addEventListener(SampleDataEvent.SAMPLE_DATA, handleSampleData);
output.play();
// The SAMPLE_DATA event is dispatched whenever the output Sound object
// buffer is empty. Fill the buffer to keep playing sound.
function handleSampleData(ev : SampleDataEvent) : void
{
var buffer : ByteArray = new ByteArray;
input.extract(buffer, 2048);
// PCM data from input is now in the buffer ByteArray. Filter the sound
// data according to your requirements here.
ev.data.writeBytes(buffer);
}
extract() 메서드에 대한 참조 설명서의 제목에도 샘플 코드가 있습니다.
플래시 10에서는이를 수행 할 수 있습니다. 나는 그것이 이전 버전에서 가능한지 확실하지 않습니다. in Flash 10 사운드 클래스에는 Sound 객체에서 재생이 호출 될 때마다 실제로 시작되는 한 가지 새로운 유형의 이벤트 SampleDataEvent가 있으며 Sound 객체가 재생할 수있는 데이터가 없으면 즉 데이터를 요청합니다. 그런 다음 이벤트를 잡아서 일부 mp3 데이터를 쓰고 Sound 객체가이를 재생할 수 있습니다. 이 link이 도움이 될 수 있습니다.
저는 최근에 AS3에서 동적 오디오를 만드는 것을 실험하고 있습니다. 내 블로그에 몇 가지 실험을 게시했습니다. http://labs.makemachine.net