首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAudioEngine分离通道

AVAudioEngine分离通道
EN

Stack Overflow用户
提问于 2016-10-10 21:45:18
回答 1查看 1.1K关注 0票数 1

我有一个立体声音频文件,我尝试为它分离音频通道。从而产生具有左音频的总线和具有右音频信号的总线。在这些通道上,我想做一些操作,然后再将它们合并成一个单一的立体声信号。

读取音频文件,在总线上进行操作,并将其合并为单个信号是没有问题的(尽管我还没有测试这个信号是否是立体声的,因为我想它取决于之前的通道)。

我的问题是将左右声道分开,所以我可以独立地修改它们。

我的一个想法是使用AVAudioPlayerNodepan属性来只显示左/右信号,但似乎(正如文档中提到的)该属性还没有在AVAudioPlayerNode中实现(即使在所有的WWDC视频示例中都使用了该属性)。

我找到的另一个解决方案是this。使用memcpy创建新的缓冲区。我还没有尝试过,因为我猜这需要相当长的时间,不适合一个普通的玩家。

第三,有一个名为audiokit的框架。这提供了将流转换为单声道左/右声道,然后通过创建AKStereoOperation再次合并信号的选项。我对这个解决方案的问题是,它是一个非常简单的用例。分离音频通道。为此,我发现很难证明包含这样一个巨大的框架是合理的,即使它可能会工作(未经过测试)。

有没有一种简单的方法来分离通道?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-10-15 08:01:26

您可以获取原始样本,并使用配置为对立体声通道进行去交错的AudioConverterNew和output AudioStreamBasicDescription来创建AudioConverter。这将导致一个缓冲区,其中一个通道连续地位于缓冲区的第一个通道中,第二个通道位于缓冲区的后半部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39959787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档