首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios音频单元remoteIO录音回放

ios音频单元remoteIO录音回放
EN

Stack Overflow用户
提问于 2012-09-24 21:20:29
回答 2查看 5.6K关注 0票数 5

我被要求将VOIP添加到游戏中(跨平台,所以不能使用Apple游戏工具包来完成)。

在3到4天的时间里,我一直试图让我的头绕着音频单元和remoteIO.我忽略了几十个例子,但每次它只是将一个简单的算法应用于输入PCM,并在扬声器上回放。根据苹果的文件,为了做视频点播,我们应该使用kAudioSessionCategory_PlayAndRecord。

代码语言:javascript
复制
UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord;

        status = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, 
                                         sizeof(audioCategory), 
                                         &audioCategory);
        XThrowIfError(status, "couldn't set audio category");

但在我看来,playAndRecord总是会播放从麦克风(或者更精确地说是PerformThru回调// aurioTouch)发出的东西,我错了吗?

我有最简单的回调,除了AURender什么也不做

代码语言:javascript
复制
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
}

通过回调,我打算将数据发送给对等方(当然不是直接的,但数据将来自它).

我不知道如何播放与输入不同的输出,除了可能有两个单元,一个录音,一个播放,但这似乎并不是苹果打算(仍然照搬文档)。

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

任何人都会想到什么是最好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-25 01:21:42

我没有使用VOIP或kAudioSessionCategory_PlayAndRecord。但是,如果您想记录/传输从麦克风接收到的声音并播放来自网络包的传入数据:这里是一个很好的示例,包括麦克风和回放。另外,如果你还没有读过苹果的这篇文档,我强烈推荐

简而言之:您需要创建一个AudioUnits实例。在其中,配置两个回调:一个用于麦克风,另一个用于回放。回调麦克风功能将为您提供从麦克风中获取的数据。然后,您可以使用任何选择的网络协议来转换和传输到其他设备。回放回调功能是提供来自其他网络设备的输入数据以进行回放的地方。

票数 9
EN

Stack Overflow用户

发布于 2014-03-22 07:24:44

您可以看到的简单示例。它描述了如何使用远程IO单元。在了解了这个示例之后,您应该看到PJSIP音频驱动程序。这些应该可以帮助您实现自己的解决方案。祝你好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12573097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档