0

我需要一个接一个地播放我的应用程序包(本地存储)中的音频文件,并在它们之间进行无缝转换。

使用 AVComposition 对我不利,因为我只知道第一个音频文件开始播放后的第二个音频文件名,所以我不能事先将它们附加在一起。

我曾尝试与两个 AVAudioPlayers 一起工作,并在第一个结束时开始第二个,但转换不是 100% 准确的,所以我听到两者之间(非常)小的沉默。

我认为唯一的方法是将音频分解为字节并将它们作为流播放,但我被困在这一点上(考虑到这是方向)。

有任何想法吗?

谢谢,

4

1 回答 1

0

你可以试试AVQueuePlayer

当您在第一个开始播放后知道第二个音频文件名时,获取第二个音频的资产

AVURLAsset *asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];

然后加载资产

[资产 loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler:

加载完成后,将新项目添加到播放器队列

[queuePlayer insertItem:anItem afterItem:nil];

当第一个音频播放完毕后,播放器将继续播放第二个音频。我没有尝试,但我想不会有停顿。

于 2011-09-21T10:16:13.940 回答