사운드 클래스는 어떻게 바뀌었을까 하고 오늘을 사운드 클래스를 좀 알아 봤습니다.
일단 가장 큰 변경 사항은 기존에 라이브러리에서 어태치를 할수있었는데 3.0에 오면서는 그게 지원이 안되는듯 합니다. attachSound 메소드가 사라졌고 쿡북에서 본내용을 보면 제가 해석을 잘못하지 않았다면 지원이 안되는듯 합니다.
무조건 사운드 클래스를 제어 하기 위해서는 외부파일을 불러서 작업을 진행 해야 하는듯 합니다. (-_-;; attachsound가 정말 안된다면 이거 꾀나 작업하기 기찮아 질듯 합니다. 디자이너나 모션 하시는 분들게 설명해서 직접 작업하게 하려면...;;;;)
사운드 클래스를 만들어 보고 플레이 해본다음 머 없을까 쿡북을 뒤적였더니 사운드 스펙트럼이란 샘플 소스가 있어서 제작을 해봤습니다.
이 샘풀은 BitmapData의 setPixel32라는 메소드를 이용해서 사운드 를 이미지 화 시켜주는 소스입니다.
음 이번에 3.0쿡북은 약간 실망스러운게 기존에 책들과 다르게 샘플 강좌중심의 소스가 많이 있는데 이상하게 책의 코드가 살짝씩 틀린부분이 있다 해야 하나...;;;; 아무튼 심심찮게 작동이 안되는 경우가 있습니다.
그래서 신나게 적어놓고 보면 작동이 안된다는...;;; 샘플 파일도 없구...이거참....제가 영어가 약해서 그런지 참... 기대를 많이 했는데 어떻게 보면 어도비에서 제공하는 레퍼런스를 보고 해보는게 빠를지도 모르겠습니다.
//
more..
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.media.SoundMixer;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.utils.ByteArray;
import flash.geom.Rectangle;
public class Spectrum extends Sprite
{
private var _sound:Sound;
private var _spectrumGraph:BitmapData;
public function Spectrum()
{
//비트맵 테이터와 사운드 오브젝트의 생성이 이루어집니다.
_spectrumGraph = new BitmapData(200,60,false,0xFFFFFF);
var bitmap:Bitmap = new Bitmap(_spectrumGraph);
addChild(bitmap);
//사운드 객체 생성
_sound = new Sound(new URLRequest("MySound.mp3"));
_sound.play();
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void
{
var spectrum:ByteArray = new ByteArray();
var rect:Rectangle = new Rectangle(0, 0, 200, 60);
SoundMixer.computeSpectrum(spectrum);
_spectrumGraph.fillRect(rect,0xCCCCCC);
//좌측 스펙트럼
for(var i:int = 0; i<256; i++ )
{
_spectrumGraph.setPixel32(i,20+spectrum.readFloat()*20,0xffffffff)
}
//우측 스펙트럼
for(var j:int = 0; j<256; j++ )
{
_spectrumGraph.setPixel32(j,40+spectrum.readFloat()*20,0xffffffff);
}
}
}
}
예전에 간단히 loadSound, attachSound가 안되는게 아쉽지만 SoundMixer.computeSpectrum
를 이용해서 웨이브 파일의 정보를 읽어서 출력을 해줄수 있기 때문에 앞으로 사운들 이용한 작업이 더 편해질것 같습니다.
이 글의 트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다
::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::