2013-01-14 2 views
3

사운드 파일을 정규화하는 라이브러리 함수가 있습니까? 나는 주변을 수색했지만 아무 것도 찾을 수 없었다.표준화 오디오 파일 obj-c

사운드 파일을 표준화하고 사운드 파일에 설정하여 비행 중에 한 번만 수행하면됩니다.

Core-Audio로이 작업을 수행 할 수 있습니까?

답변

2

예, 수행 할 수 있지만 단일 함수 호출로 수행 할 수는 없습니다.

원하는 기능은 실제로 CoreAudio가 아니라 ExtendedAudioFile.h - AudioToolbox 프레임 워크의 일부입니다. 이것은 iOS와 MacOSX 모두 가능합니다. 나는 이것을 찾기가 다소 힘들다는 것을 증명할 수있다.

이 헤더에서 중요한 기능은 ExtAudioFileOpenURL(), ExtAudioFileRead()ExtAudioFileWrite()입니다. 개요에서

은 당신이 무엇 :

  1. 사용 ExtAudioFileOpenURL() 파일을 설명하는 AudioStreamBasicDescription 얻기 위해 부동산 ID kExtAudioFileProperty_FileDataFormat로 입력 파일
  2. 을 사용 ExtAudioFileGetProperty()를 엽니 다.

  3. 원하는 형식으로 ASBD를 설정했을 수 있습니다. MacOSX의 AudioToolBox는 iOS보다 오히려이 기능을 사용하기 쉽습니다.

  4. 전체 오디오 파일

  5. 을 저장하기에 충분히 큰 버퍼를 할당 계산 ExtAudioFileRead()와 전체 파일 읽기 -주의 :이 호출이 한 번에 모든 것을 읽을 수 있습니다 - 동일로했다 훨씬에서 운영을 POSIX read()

  6. 수행 정상화

  7. 사용 ExtAudioFileCreateWithURL()를 작성하는 출력 파일
  8. 사용 ExtAudioFileWrite()을 만들 수 있습니다 정규화 된 샘플을 출력한다.
  9. 두 오디오 파일을 모두 삭제하십시오.

문서는 작업 코드의 기증자 역할을 할 수있는 몇 가지 예제 프로젝트로 연결됩니다. 샘플을 플로트로 사용하면 훨씬 쉽게 정규화를 수행 할 수 있지만 iOS에서는 자동으로 변환이 수행되지 않으므로 직접 변환을 수행해야 할 수도 있습니다.

+0

감사합니다. – jarryd