您好堆栈溢出用户,
我想使用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 。