0

何らかの理由で、cleanupPlayer メソッドには少しバグがあり、オーディオ プレーヤーを正しく解放していません。アプリケーションがときどきクラッシュしますが、メモリの問題が原因ではないかと思われます。また、音声ファイルを 2 回 (ボタンをクリックして) 再生しようとすると、2 回目で音声が途切れることがあります。私は少し初心者なので、どんな助けでも大歓迎です!

コードのスニペットを次に示します。

.h ファイル:

@property (retain,nonatomic)AVAudioPlayer *player;

.m ファイル:

-(void)playSound:(NSString *)fileName
{
    // Play
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:fileName ofType:kSoundFileType]];
    _player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
    _player.delegate = self;
    [_player prepareToPlay];
    [_player play];
}

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
    [self cleanupPlayer];
}   

-(void)cleanupPlayer
{
    if(_player != nil) {
    [_player release];
}
4

1 に答える 1