如何在 IOS 音频单元框架中设置声像

How to set pan in IOS Audio Unit Framework

你好堆栈溢出用户,

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

我正在升级目前正在使用 Matt Gallagher

AudioStreamer 的整个应用程序

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

AudioQueueRef 音频队列; // 在 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 如果有人需要更多信息,请告诉我。

谢谢

使用 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");
}

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