首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS如何将USB设备的具体通道设置为音频播放器?AVFoundation

iOS如何将USB设备的具体通道设置为音频播放器?AVFoundation
EN

Stack Overflow用户
提问于 2016-05-30 21:32:22
回答 1查看 1.1K关注 0票数 5

我和AVAudioplayer和AVAudiosession一起工作。我有一个iPad和一个音频接口(声卡)。

这个音频接口有4个输出(2个立体声),一个闪电电缆,它从iDevice接收能量,工作出色。

我编写了一个简单的play() stop() AVAudioplayer,运行良好,但我需要为音频接口(1-2 & 3-4)指定一个特定的通道。我的想法是发送两个音频(A & B)到每个输出/频道(1-2或3-4)。

我读过AVAudioplayer的文档,它说:channelAssignments是一个音频播放器的信号通道。

问题是:我已经创建了一个AVAudiosession来获取USBport设备的数据插入(声卡)。我得到了:

代码语言:javascript
运行
复制
let route = AVAudioSession.sharedInstance().currentRoute

for port in route.outputs {
    if port.portType == AVAudioSessionPortUSBAudio {
        let portChannels = port.channels
        let sessionOutputs = route.outputs
        let dataSource = port.dataSources
        dataText.text = String(portChannels) + "\n" + String(sessionOutputs) + "\n" + String(dataSource)
    }
}

日志:输出

使用play()发送音频时,必须采集和使用哪些数据?

EN

回答 1

Stack Overflow用户

发布于 2016-05-30 22:56:24

哇--自从AVPlayer在iOS 4中发布以来,我根本不知道AVPlayer是开发出来的。然而,2016年,我们来到了这里,AVAudioPlayerchannelAssignments,而流媒体、视频播放的字幕AVPlayer就没有了。

但是我认为你不能通过一个AB播放两个文件,因为每个玩家只能打开一个文件。只剩下

  1. 创建两个播放器(player(A)player(B))并将每个音频设备的channelAssignments设置为一半的音频设备输出通道,处理同步播放器的乐趣,或
  2. 创建一个四通道文件AB,并通过一个播放器播放它,为channelAssignments分配您在上面找到的全部四个频道,处理稍微不标准的音频文件的乐趣。

健康检查:您的session.outputNumberOfChannels是否返回4?

就我个人而言,当我做这种事情的时候,我创建了一个4通道的远程io音频单元,因为我发现高级别的API一旦做了一些不寻常的事情就会引起太多的心痛。我也使用AVAudioSessionCategoryMultiRoute,因为我没有任何>2声道声卡,所以我不得不鹅卵石耳机插口加上usb声卡来获得4个频道,但你不应该需要这个。

尽管没有过程输出(如remoteIO音频单元),但您也可以使用AVAudioEngine来做您想做的事情。

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

https://stackoverflow.com/questions/37533870

复制
相关文章

相似问题

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