我需要一个接一个地播放我的应用程序包(本地存储)中的音频文件,并在它们之间进行无缝转换。
使用 AVComposition 对我不利,因为我只知道第一个音频文件开始播放后的第二个音频文件名,所以我不能事先将它们附加在一起。
我曾尝试与两个 AVAudioPlayers 一起工作,并在第一个结束时开始第二个,但转换不是 100% 准确的,所以我听到两者之间(非常)小的沉默。
我认为唯一的方法是将音频分解为字节并将它们作为流播放,但我被困在这一点上(考虑到这是方向)。
有任何想法吗?
谢谢,
我需要一个接一个地播放我的应用程序包(本地存储)中的音频文件,并在它们之间进行无缝转换。
使用 AVComposition 对我不利,因为我只知道第一个音频文件开始播放后的第二个音频文件名,所以我不能事先将它们附加在一起。
我曾尝试与两个 AVAudioPlayers 一起工作,并在第一个结束时开始第二个,但转换不是 100% 准确的,所以我听到两者之间(非常)小的沉默。
我认为唯一的方法是将音频分解为字节并将它们作为流播放,但我被困在这一点上(考虑到这是方向)。
有任何想法吗?
谢谢,
你可以试试AVQueuePlayer。
当您在第一个开始播放后知道第二个音频文件名时,获取第二个音频的资产
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];
然后加载资产
[资产 loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler:
加载完成后,将新项目添加到播放器队列
[queuePlayer insertItem:anItem afterItem:nil];
当第一个音频播放完毕后,播放器将继续播放第二个音频。我没有尝试,但我想不会有停顿。