2009-07-15 4 views
1

두 가지 종류의 소리가있는 응용 프로그램이 있습니다. 1. 다음 소리까지 영원히 반복되는 소리. 2. 별도로 재생하거나 한꺼번에 재생할 수있는 사운드 클립.핀치를 사용하여 아이폰에서 소리 재생

이전에 AVAudioPlayer를 사용했지만 AVAudioPlayer를 사용해 보았지만 두 클립 사이에 항상 약간의 침묵 간격이있었습니다 (어떤 솔루션도 찾지 못했을 경우 회신하여 게시하십시오). http://github.com/zoul/Finch/tree/master

여기에 거래가 있습니다. Finch가 연속 된 클립을 재생하는 동안 AVAudioPlayer를 사용하여 반복되는 영원한 사운드를 재생하고 있습니다. 나는 이것을하고있다 :

이것은 git 저장소에서 제공하는 데모 프로젝트와 거의 같은 코드이다. 그러나 어떤 이유로 내가 콘솔이 얻을 :

Song is /Users/shoaibi/Library/Application Support/iPhone Simulator/User/Applications/17FBA26F-6047-4D56-9E45-ADAFE07B7234/Test.app/sitar.wav 
Failed to create OpenAL source, error code a004. 
Clip Length: (null) 
Clip Playing ? : 0 
Played Clip 

콘솔에 인쇄 된 디렉토리에 LS는 sitar.wav 올바른 권한이 있다는 것을 알 수있다. 무엇이 문제 일 수 있습니까?

- (void)viewWillAppear:(BOOL)animated { 

    //Stop the background music before my ears bleed :P 
    d = [[UIApplication sharedApplication] delegate]; 
    if (d.bg.playing) 
    { 
     [d.bg stop]; 
     NSLog(@"Background music stoped"); 
    } 

} 

은 사운드 자원을 확보하고 있지 않은 배경 음악 AVAudioPlayer 일 수 있습니까?

+0

AVAudioPlayer가 문제가 아니어야합니다. Finch는 AVAudioPlayer를 따라 가야합니다. 시뮬레이터에서 코드를 실행하고 있습니까? (파일 경로는 그렇게 암시합니다.) 시뮬레이터에서 OpenAL에 문제가있어서 장치를 사용해 봐야합니다. – zoul

+0

동일한 코드가 장치에서 실패합니다.이 게시물을 작성하는 동안 시뮬레이터를 사용합니다. 게다가 데모 응용 프로그램은 아무 문제없이 시뮬레이터에서 작동합니다. – Shoaibi

답변

3

최신 핀치는 새로운 Sound을 초기화 할 때 OpenAL이 초기화되었는지 확인합니다. Finch를 초기화하는 것을 잊었거나 실패했기 때문에 현재 OpenAL 컨텍스트가 설정되어 있지 않으면 더 나은 오류 메시지가 나타납니다. 한번 시도 해보면 초기화 코드가 버그가있는 경우 일 수 있습니다.

0

내 viewWillAppear에서 사운드 클립 할당을 호출 할 때 동일한 오류가 발생했습니다. awakeFromNib이 해당 작업을 완료하기 전에 호출 된 것처럼 보입니다. 어쨌든 allocs를 이동시켜 나중에 수정했습니다.