如何在IOS Audio Unit Framework中设置声像

时间:2016-07-28 12:45:09

标签: ios objective-c iphone xcode audio-streaming

Hello堆栈溢出用户,

我想在我的IOS应用程序中使用UISlided更改平移位置。

我正在升级整个应用,目前正在使用 AudioStreamer Matt Gallagher

要更改代码中使用的AudioStreamer中的声像值。

AudioQueueRef audioQueue; //在AudioStreamer.h文件中定义

    - (void)changePan:(float)newPan
{
    OSStatus panErr = AudioQueueSetParameter( audioQueue, kAudioQueueParam_Pan, newPan);
    NSLog(@" setting pan: %ld", panErr);
    if( panErr )
        NSLog(@"Error setting pan: %ld", panErr);
}

我正在用使用AudioUnit的StreamingKit取代AudioStreamer

如果我能得到一些帮助,使用StreamingKit或AudioUnit完成这项工作,我将非常感激。

P.S如果有人需要更多信息,请告诉我。

由于

1 个答案:

答案 0 :(得分:3)

使用AudioUnit API,您只需设置音频混音器单元的kMultiChannelMixerParam_Pan属性即可设置立体声声像:

AudioUnitParameterValue panValue = 0.9; // panned almost dead-right. possible values are between -1 and 1
int result = AudioUnitSetParameter(mixerUnit, kMultiChannelMixerParam_Pan, kAudioUnitScope_Input, 0, panValue, 0);
if (result == 0)
{
   NSLog("success");
}

您可能还需要从mixerUnit内部检索内部STKAudioPlayer实例变量。您可以尝试[audioPlayer valueForKey:@"_mixerUnit"]或者在StreamingKit的文件中自己实现一个getter。