2011-05-12 5 views
2

실버 라이트로 재생할 수있는 오디오 파일을 녹음해야합니다. AVAudioRecorder로 녹음 된 오디오 파일에는 CAF 컨테이너가 있습니다. 이 형식은 Silverlight에서 지원되지 않습니다. 그것이 은빛에 의해 지원 될 수 있도록 mp4 컨테이너를 가지고 있도록 오디오를 편집 할 수있는 방법이 있습니까?CAF 오디오 컨테이너를 mp4로 변경 하시겠습니까?

답변

2

음, 결국 나는 방법이 있다고 생각합니다. 확장자가 .mp4 인 파일을 저장하는 데 필요한 모든 것. AVAudioRecorder는 파일 경로에 지정된 확장명에 따라 컨테이너를 만들어 오디오 파일을 저장합니다. 나는 그저 쉽다고 생각하지는 않았지만 완벽하게 작동합니다.

0

슬프게도 mp4로 기록하거나 CAF를 mp4로 변환하는 기본 제공 방법이 없습니다. 내가 한 것처럼 애플에게 버그 리포트를 제출하십시오.

7

컨테이너 형식은 AVAudioRecorder를 생성 할 때 지정한 URL의 확장자에 의해 결정됩니다.

여기서 지정한 확장명은 mp4입니다.

결과 파일은 AAC는 내부 스트림을 압축한다
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryRecord error: nil]; 


    NSDictionary *recordSettings = [[NSDictionary alloc] initWithObjectsAndKeys: 
            [NSNumber numberWithFloat: 32000], AVSampleRateKey, 
            [NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey, 
            [NSNumber numberWithInt: 1], AVNumberOfChannelsKey, 

            nil]; 

    AVAudioRecorder *newRecorder = [[AVAudioRecorder alloc] initWithURL: soundFilePath settings: recordSettings error: nil]; 
    [recordSettings release]; 
    self.soundRecorder = newRecorder; 
    [newRecorder release]; 

    soundRecorder.delegate = self; 
    [soundRecorder prepareToRecord]; 
    [soundRecorder recordForDuration:60]; 

"ISO 미디어, MPEG의 V4 시스템 버전 2"컨테이너 (AS : 레코더를 생성하면, 우리는 코덱 형식을 지정 (여기서 일반 AAC이다) iOS 5.0).

"caf"로 지정하고 확장하면 컨테이너는 Core Audio Format이되고 코덱은 여전히 ​​AAC가됩니다.

관련 문제