您好堆栈溢出用户,

我想使用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做到这一点,我将不胜感激。

附言:让我知道是否有人需要更多信息。

谢谢

最佳答案

使用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的文件中自己实现 setter/getter 。

10-07 21:31