AVAudioPlayer在文件结束前停止

时间:2012-09-16 21:52:02

标签: ios cocoa-touch avaudioplayer

我的功能几乎正常。根据您所在的页面播放不同的音频文件。问题是,一些音频文件突然结束。例如,当音频文件在“情况1”上播放到最后时,在“情况2”上它将停止约90%。

- (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...
    }
}

AAC只有几分钟的时间。也许有更好的方法来解决这个问题? AVAudioPlayer可能有点时髦。谢谢!

1 个答案:

答案 0 :(得分:1)

编辑:AVAudioPlayer对于我在Adobe Soundbooth中制作的64kb单声道AAC有点不可预测,但在将文件重新转换为M4A之后似乎运行正常。我使用MP4Box使用以下语法转换它们:“mp4box -add source.aac:mpeg4 -sbr -ipod target.m4a”(credit

重新编码到更高的比特率(128kb)似乎也修复了一些但不是全部的文件。在我发现重新启动之前,我没有对此进行彻底的测试。