2011-10-13 3 views
0

NSTimer를 통해 매초마다 "삐"소리를내는 카운트 다운 타이머를 만들고 있습니다. 앱은 최대 90 분 동안 깨어 있어야하며 타이머가 무효화 될 때까지 반복되는 경고음을 재생해야합니다. 화면에서 내 타이머를 유지하기 위해 "UI 배경 모드 응용 프로그램에서 오디오를 재생합니다"를 선택하고 대리인에게 [UIApplication sharedApplication].idleTimerDisabled = YES;을 추가했습니다. 문제는 4 분 후 반복되는 소리가 멈춤입니다. 그 밖의 모든 기능이 작동하고 있으며, 앱이 깨어있는 것 같습니다. 카운트 다운을 보여주는 라벨 자체가 업데이트됩니다. 오디오를 복원하려면 앱을 종료했다가 다시 시작해야합니다. 이 문제는 시뮬레이터와 장치 (iPhone 3G) 모두에서 발생합니다. 문제가 있다면 xcode 4를 사용하고 있습니다. 여기 내 코드입니다 : 물론iPhone : 4 분 후에 오디오 루핑이 중지됩니다.

NSString *path = [[NSBundle mainBundle] 
        pathForResource:@"beep" ofType:@"mp3"]; 
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:nil]; 
[[UIApplication sharedApplication] endBackgroundTask:bgTask]; 
[audioPlayer play]; 

, 나는 도서관을

#import <AVFoundation/AVFoundation.h> 
#import <AudioToolbox/AudioToolbox.h> 

추신을 가져온 배경 오디오에 대한 몇 시간 동안의 독서를하고 있으며 내가 찾은 거의 모든 것을 테스트했지만 나에게 도움이되는 것은 없습니다. 누군가가 나를 도울 수 있다면, 나는 프로그래밍에 익숙하지 않다는 것을 명심하십시오. 미리 감사드립니다.

답변

1

게시 된 코드에서 사운드를 재생할 때마다 새 AVAudioPlayer 객체를 만들고 나중에 릴리스하지 않는 것 같습니다. 이로 인해 파일 (beep.mp3)이 열린 상태로 유지되고 너무 많은 파일이 열리면 파일 핸들러가 부족합니다. 그렇다면 더 이상 파일을 열 수없는 것보다 묵음이 발생할 수 있습니다.

모든 것을 적절하게 출시하거나 재사용하는 경우에는 그럴 수 없습니다.

+0

그게 문제였습니다! 고마워요! –

관련 문제