2012-09-16 3 views
0

저는 거의 작동하는 기능이 있습니다. 현재 사용중인 페이지에 따라 다른 오디오 파일이 재생됩니다. 문제는 일부 오디오 파일이 갑자기 종료된다는 것입니다. 예를 들어, 오디오 파일은 약 90 %를 중지 "경우 2"에, "사례 1"에 끝까지 재생하는 동안.AVAudioPlayer가 파일 끝나기 전에 중지합니다.

- (void)playAudio 
{ 
    NSURL *audioURL; 
    [voiceAudio release]; 

    switch (pageNumber) 
    { 
     case 1: 
      audioURL = [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"file1" ofType:@"aac"]]; 
      voiceAudio = [[AVAudioPlayer alloc] 
            initWithContentsOfURL:audioURL error:nil]; 
      [audioURL release]; 
      voiceAudio.delegate = self; 
      [voiceAudio play]; 
      break; 

     case 2: 
      audioURL = [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"file2" ofType:@"aac"]]; 
      voiceAudio = [[AVAudioPlayer alloc] 
            initWithContentsOfURL:audioURL error:nil]; 
      [audioURL release]; 
      voiceAudio.delegate = self; 
      [voiceAudio play]; 
      break; 

     // And so on... 
    } 
} 

AACS 긴 몇 분 거리에 있습니다. 이 문제를 해결할 더 좋은 방법이 있을지도 모릅니다. AVAudioPlayer는 약간 펑키 할 수 있습니다. 감사!

+1

문제는 아니지만'[audioURL release];','voiceAudio.delegate = self;'및'[voiceAudio play]; 행을 배치하여 특정 코드 행을 스위치에 복사하지 않고 저장할 수 있습니다 switch 문 다음에 한 번. –

+0

고마워, 나는 그것을 끝내었다. – Alex

답변

1

편집 : AVAudioPlayer는 Adobe Soundbooth에서 만든 64kb 모노 AAC로 예측할 수없는 비트이지만 M4A로 파일을 다시 변환 한 후에 잘 실행되는 것 같습니다. 나는 구문을 사용하여 변환 할 MP4Box을 사용 : "mp4box -add source.aac : MPEG4 -sbr -ipod target.m4a"더 높은 비트 레이트 (128킬로바이트)에 재 인코딩 (credit)

일부를 해결하기 위해 듯, 전부는 아니지만 , 파일의. 나는 재 추출을 발견하기 전에 이것을 철저히 시험하지 않았다.

+0

m4a로 전환하면 문제를 해결할 수있을뿐 아니라 오디오가 중단 (예 : 전화 통화)에서 복구되지 않는 문제가 해결되었습니다. – Alex

관련 문제