0

针对 iOS,我想同时播放两个 .caf 音频文件。

我创建了一个简单的 AUGraph,它包含两个“生成器”音频单元(子类型 kAudioUnitSubType_AudioFilePlayer),连接到连接到远程 IO(输出范围)的多通道混音器 AU。

只需将一个 filePlayer AU 连接到混音器,我就可以成功播放其中一个文件。要播放这两个文件,我只需创建另一个 filePlayer AU 实例,并以与第一个 filePlayer 相同的方式对其进行配置。

我正在打开音频文件,然后使用kAudioUnitProperty_ScheduledFileIDs属性和kAudioUnitProperty_ScheduledFileRegion属性将它们传递到生成器单元中。

我一直在检查所有 AU 调用的错误,并且没有返回错误。当我开始绘制图表时,我什么也得不到,只有沉默。

这是按下“播放”后我的图表的快照:

AudioUnitGraph 0xF7DA000:
  Member Nodes:
    node 1: 'auou' 'rioc' 'appl', instance 0xf18e3e0 O I
    node 2: 'aumx' 'mcmx' 'appl', instance 0x9d72f50 O I
    node 3: 'augn' 'afpl' 'appl', instance 0x9db6ee0 O I
    node 4: 'augn' 'afpl' 'appl', instance 0x9db6fd0 O I
  Connections:
    node   3 bus   0 => node   2 bus   1  [ 1 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
    node   4 bus   0 => node   2 bus   2  [ 1 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
    node   2 bus   0 => node   1 bus   0  [ 2 ch,  44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved]
  CurrentState:
    mLastUpdateError=0, eventsToProcess=F, isRunning=T (3)

使用我缺少的多个 filePlayer 音频单元是否有细微差别?我试图以这种方式做的事情可能吗?或者我是否需要创建音频缓冲区并将其手动提供给 filePlayer 单元?

4

2 回答 2

0

您所拥有的应该可以工作,但是可能会出现一些问题:

  1. 您是否将每条总线上的音量参数设置为 > 0以及输出?(kMultiChannelMixerParam_Volume在输入和输出范围内)。这就是我认为的问题所在,因为我相信混音器的所有音量都从 0 开始。

  2. kAudioUnitProperty_ElementCount您是否通过在输入范围上设置属性将输入总线计数设置为 2 或更多?(注意:由于您使用的是元素 1 和 2,因此您需要将元素计数设置为 3,或者改用元素 0 和 1)。

于 2013-01-05T23:58:16.470 回答
0

不确定你是否解决过这个问题。

看起来好像您在将混音器连接到 remoteIO 之前将文件播放器连接到混音器。

始终“向后”连接您的图表,即从 remoteIO 开始,然后通过链返回到您的生成器。我认为由于 AUGraphs 中使用的拉取架构,连接转发不起作用

于 2014-04-20T13:06:33.033 回答