0

我有一个几乎可以工作的功能。根据您所在的页面播放不同的音频文件。问题是,一些音频文件突然结束。例如,当音频文件在“case 1”播放到结尾时,在“case 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 可能有点时髦。谢谢!

4

1 回答 1

1

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

Reencoding to a higher bitrate (128kb) seemed to fix some, but not all, of the files as well. I didn't thoroughly test this before I discovered remuxing.

于 2012-09-18T00:37:06.630 回答