굉장히 머리가 아프다.
음악 파일이 아주 복잡하다는 걸 깨닫고 있다.
우선 Oboe에서 스트리밍하려면 PcmData로 음악 파일을 변환해서 넘겨줘야 한다.
PCM Data는 오디오 신호의 진폭을 비트로 변환하여 저장한 데이터다.
그냥 값만 들고 있기 때문에 어떤 포맷으로 읽느냐에 따라서 소리가 이상하게 들릴수 있다.(16비트 깊이로 표현된 pcm data를 32bit로 읽는다면 소리가 짧아진다. 맞겠지?)
그리고 오디오 파일 안에 하나의 오디오 트랙이 존재하는 것이 아니다. 모노일 경우는 하나지만 스테레오일 경우는 채널이 2개고, 5.1, 7.1의 경우 6개, 8개의 채널이 존재한다.
그래서 내가 구현하려는 야매 공간음향을 하려면 모든 채널의 사운드를 모노로 만들어줘야 한다. 그래서 우선 스테레오와 모노 포맷의 파일만 공간음향으로 하려고 한다.
하나 더 문제는 길이가 3-4분 정도 되는 파일의 경우 pcm data로 변환하면 oom이 발생한다. 그래서 java에서 c++ 라이브러리로 넘길때도 버퍼로 처리해야 할듯하다.
그러면 스트리밍하다 다시 앞으로 돌아가면? 어떻게 처리해야할지 고민이다.