在AVFoundation和简单的NSSound play之间,我得到了一个似乎依赖于计算机的延迟。我的程序正在播放一个AVPlayer内部排列的一个视频轨道和3个音频轨道。这工作得很好。独立地,程序根据乐谱中的信息为小节的每个节拍生成节拍器。这两个节拍器声音是我在NSSound中加载并使用NSSound play播放的非常短的文件。我注意到我必须将节拍器的回放时间调整到大约90毫秒,这样它才能完全同步。其中一部分可能是节拍器的影响在节拍器文件中的确切时刻,但如果这是唯一的原因,那么这个延迟在所有Mac计算机上都是相同的。但是,在不同的Mac上,必须调整此延迟。由于它是与音乐同步的节拍器节拍,所以它非常关键,因为轻微的变化使它听起来不是节拍。有没有办法直接从AVFoundation接口计算这个延迟?或者补偿它,或者用另一种方式播放节拍器,这样AVPlayer和NSSound play之间就不会有延迟?我会感谢一些关于这方面的链接或想法。谢谢!Dominique Arpege音乐,比利时
发布于 2017-06-20 21:38:03
我建议查看低级音频库来管理并立即播放您的音乐。BASS是一个建立在音频单元之上的低级库,它允许对流进行精细、精确和快速的控制。通过操作你的缓冲区,并可能创建一个混音流(参考文档),你应该能够立即在任何设备上播放声音。具体地说,考虑到事先缓冲声音,并将其保存在内存中,因为它是一个简短的声音。
https://stackoverflow.com/questions/23107180
复制相似问题