我需要一个接一个地播放我的应用包(本地存储)中的音频文件,并在它们之间进行无缝转换。
使用AVComposition对我来说不好,因为我在第一个音频文件开始播放后才知道第二个音频文件名,所以我不能在手边将它们附加在一起。
我尝试使用两个AVAudioPlayers并在第一个结束时启动第二个AVAudioPlayers,但转换不是100%准确,所以我听到两者之间的(非常)小的沉默。
我在想,唯一的方法是将音频分解为字节并将其作为流播放,但我仍然坚持这一点(考虑到这是方向)。
有什么想法吗?
谢谢,
答案 0 :(得分:0)
您可以尝试AVQueuePlayer
。
如果您知道第一个音频文件名称在第一个音频文件开始播放后,请使用
获取第二个音频的资源AVURLAsset * asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];
然后使用
加载资产[asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler:
加载完成后,使用
将新项目添加到播放器队列[queuePlayer insertItem:anItem afterItem:nil];
当第一个音频完成播放时,播放器将继续播放第二个音频。我没试过,但我猜不会停顿。