1

私のアプリケーションでは、AVAudioRecorderオブジェクトを使用して、ユーザーがサウンドファイルを録音できるようにしています。ユーザーが録音を完了すると、AVAudioPlayerを介してサウンドを再生できます。私が抱えている問題は、ユーザーがオーディオファイルを再生しようとすると1秒間しか再生されないことです。さらに奇妙なことに、このコードはiOS 5で完全に機能しましたが、iOS 6にアップグレードしてから、この問題が発生し始めました。

iTunesのファイル共有で作成されているファイルを確認したところ、デスクトップでサウンドファイル全体を再生できます。

以下に、オーディオプレーヤーをロードする操作ファイルからコードを貼り付けました。私が言えることから

- (void)playRecordingBtnClk:(id)sender
{
    NSLog(@"Play btn clk");

    if (!isRecording) {

        // disable all buttons
        [_recordButton disableButton];
        [_stopButton disableButton];
        [_playButton disableButton];
        [_saveButton disableButton];

        // create the player and play the file from the beginning
        if (audioPlayer) {
            [audioPlayer release];
            audioPlayer = nil;
        }

        audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioRecorder.url error:&error];
        audioPlayer.delegate = self;
        audioPlayer.currentTime = 0.0;
        [audioPlayer prepareToPlay];

        if (error) {
            NSLog(@"Error Playing Audio File: %@", [error debugDescription]);
            return;
        }

        [audioPlayer play];
        [self startTicker];
    }
}

どうやら

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag 

メソッドが1秒後に呼び出されるため、オーディオプレーヤーが停止します。誰かがここで何が起こっているのか考えがありますか?

4

1 に答える 1

3

iOS 6.0の場合、さらに2行追加します。

soundPlayer.currentTime = soundPlayer.duration + soundPlayer.duration;
soundPlayer.numberOfLoops = 1;

完璧な解決策ではありません。iOS 6.0.1/6.1のアップデートを待つ必要があるかもしれません。

詳細については、こちらをご覧ください。CDAudioManagerの問題である可能性があると誰かがコメントしています。

于 2012-10-08T03:13:35.637 に答える