是否可以在AUGraph中播放两个或更多个FilePlayer音频单元?

时间:2013-01-05 21:20:10

标签: ios core-audio

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

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

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

我打开音频文件,然后使用kAudioUnitProperty_ScheduledFileIDs属性和kAudioUnitProperty_ScheduledFileRegion属性将它们传递到Generator单元。

我正在检查所有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单元?

2 个答案:

答案 0 :(得分:0)

你有什么应该工作,但有一些可能已经浮出水面的问题:

  1. 您是否将音量参数设置为> 每个总线上的0,以及输出? (输入和输出范围内的kMultiChannelMixerParam_Volume)。这就是我认为的问题,因为我认为调音台的所有音量均为0。

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

答案 1 :(得分:0)

不确定你是否曾修复此问题。

在将调音台连接到remoteIO之前,您似乎正在将文件播放器连接到调音台。

始终“向后”连接图表,即从remoteIO开始,然后通过链回到发电机。由于AUGraphs中使用的拉结构,我认为连接前进不起作用