사용자 도구

사이트 도구


사이드바

language:unity:5-사운드-오디오

파일 손실 방지

음악이나 효과음을 mp3나 ogg로 변경할 경우,

  • 소리가 너무 작아서 압축 과정에서 손실되는 경우
  • kbs를 더 늘려서 압축해본다. ( 192 이상)
  • 원본보다는 더 작다.

음악 (AudioSource)

음악 비주얼라이져를 만들기 위한 .. 것만은 아니겠지만 AudioSource에 보면 관련있는 함수가 있다.

GetOutputData

void GetOutputData(float[] samples, int channel);

지금 딱 연주하는 구간의 데이터.

samples 배열인데, 배열의 크기는 음악의 압축률과 같거나.. 달라도 상관 없나? 잘 모르겠네.
128kbps 파일이면 배열 크기를 128로 잡는다. (확인필요)
channel 모노, 스테레오 그이상?
모노면 0 만 보내고, 스테레오라면 0, 1 각각 따로 파라미터로 전송해서 2번 함수를 호출해야 한다.
// 128kbps 파일이라면, 어디엔가 있는 AudioSource를 얻어 온다 손 치고
AudioSource _musicSource;
// 현재 연주 구간의 데이터를 얻기 위한 데이터 변수
float[] _samples1;
float[] _samples2;
_samples1 = new float[128];
_samples2 = new float[128];
// 데이터를 얻는다.
_musicSource.GetOutputData(_samples1, 0);
_musicSource.GetOutputData(_samples2, 1);

GetSpectrumData

음악 데이터의 스펙트럼이라는 것에 대해서 알고 있어야 하는듯한데.. 그것까지는 모르겠고.

  • 스펙트럼의 개수는 : (1) 2의 배수여야 하고 (2) Min=64 ~ Max=8192 라고 하네
  • 도움말을 참조
// 위 챕터에서 사용한 _musicSource를 그대로 사용
float[] _spectrum;
_spectrum = new float[64];
_musicSource.GetSpectrumData(_spectrum, 0, FFTWindow.Rectangular);
language/unity/5-사운드-오디오.txt · 마지막으로 수정됨: 2013/09/14 01:52 저자 kieuns