相关疑难解决方法(0)

录制时ios音频单元remoteIO播放

我被指控将VOIP添加到游戏中(跨平台,因此不能使用Apple游戏套件来执行此操作).

现在3或4天,我正试图绕着音频单元和remoteIO ...我已经忽略了几十个例子等等,但每次它只是将一个简单的算法应用到输入PCM并播放它回到扬声器上.根据Apple的文档,为了做VOIP,我们应该使用kAudioSessionCategory_PlayAndRecord.

UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord;

        status = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, 
                                         sizeof(audioCategory), 
                                         &audioCategory);
        XThrowIfError(status, "couldn't set audio category");
Run Code Online (Sandbox Code Playgroud)

1)但似乎(对我而言)playAndRecord将始终播放来自麦克风的内容(或者更令人兴奋的是PerformThru回调// aurioTouch),我错了吗?

我有最简单的回调,只做AURender

static OSStatus PerformThru(
                            void                        *inRefCon, 
                            AudioUnitRenderActionFlags  *ioActionFlags, 
                            const AudioTimeStamp        *inTimeStamp, 
                            UInt32                      inBusNumber, 
                            UInt32                      inNumberFrames, 
                            AudioBufferList             *ioData)
{
OSStatus err = AudioUnitRender(THIS->rioUnit, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData);
    if (err) 
       printf("PerformThru: error %d\n", (int)err);
    return err
}
Run Code Online (Sandbox Code Playgroud)

从那个回调我打算将数据发送给对等体(当然不是直接,但数据将来自它)......

我不知道我怎么能输出不同于输入的输出,除了可能有2个单位,一个录音,一个播放,但它似乎不是Apple的意图(仍然依据文档).

当然,我找不到任何关于它的文档,音频单元仍然没有记录......

任何人都会知道最好的方法是什么?

voip audiounit ios

5
推荐指数
1
解决办法
4903
查看次数

标签 统计

audiounit ×1

ios ×1

voip ×1