本文介绍了如何在IOS Audio Unit Framework中设置声像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello堆栈溢出用户,

Hello stack overflow users,

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

i want to change pan position using UISlided in my IOS application.

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

i am upgrading whole app which is currently using AudioStreamer of Matt Gallagher

要更改其中的平移值AudioStreamer在代码下方使用。

To change the pan value in in AudioStreamer used below code.

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

AudioQueueRef audioQueue; // defined in AudioStreamer.h file

    - (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取代AudioStreamer使用AudioUnit

i am replacing AudioStreamer with StreamingKit which use AudioUnit

如果我能得到一些帮助,使用StreamingKit或AudioUnit完成这件事,我会很感激。

if i will get some help to make this thing done using StreamingKit or AudioUnit i will appreciate that.

PS让我知道是否有人需要更多信息。

P.S Let me know if anyone needs more info.

谢谢

推荐答案

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

Using AudioUnit API, you can simply set the kMultiChannelMixerParam_Pan property of the audio mixer unit to set the stereo 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。

You may also need to retrieve the internal mixerUnit instance variable from inside STKAudioPlayer. You can try [audioPlayer valueForKey:@"_mixerUnit"] for that or implement a getter yourself inside StreamingKit's files.

这篇关于如何在IOS Audio Unit Framework中设置声像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-31 17:30