gpt4 book ai didi

c# - 使用智能手机上的 RIL Audio 进行音频反馈

转载 作者:行者123 更新时间:2023-12-02 23:24:52 25 4
gpt4 key购买 nike

我们正在开发 SIP 软电话,当我们从一部电话调用另一部电话时,我们会收到音频反馈。但是,当我们从普通 SIP 电话(软件或硬件)调用我们的应用程序时,一切正常 - 只有当使用该应用程序从一部电话调用另一部电话时。下面是我们用来初始化 RIL Audio 的代码:

    public static void InitRILAudio()
{
IntPtr res;
RILRESULTCALLBACK result = new RILRESULTCALLBACK(f_result);
RILNOTIFYCALLBACK notify = new RILNOTIFYCALLBACK(f_notify);

res = RIL_Initialize(1, result, notify, (0x00010000 | 0x00020000 | 0x00080000), 0, out hRil);

if (res != IntPtr.Zero)
return;

RILAUDIODEVICEINFO audioDeviceInfo = new RILAUDIODEVICEINFO();
audioDeviceInfo.cbSize = 16;
audioDeviceInfo.dwParams = 0x00000003; //RIL_PARAM_ADI_ALL;
audioDeviceInfo.dwRxDevice = 0x00000001; //RIL_AUDIO_HANDSET;
audioDeviceInfo.dwTxDevice = 0x00000001; //RIL_AUDIO_HANDSET;

res = RIL_SetAudioDevices(hRil, audioDeviceInfo);
}

我们将 SipEk ( http://voipengine.googlepages.com/sipeksdk) 用于 SIP 堆栈。基本上我们只是使用来自 SDK 的回调委托(delegate)来处理音频内容。有没有其他人遇到过这样的音频反馈循环问题?使用 RIL Audio 还是 SipEk?有什么建议么?

提前致谢!

最佳答案

反馈意味着您没有使用回声消除(线路和/或声学,取决于它是否用作免提电话),或者如果您使用了,则表示您的系统延迟( jitter buffer 、网络、编码/解码等) ) 大于回声消除器的处理能力。错误位置的过度增益/削波也会破坏任何回声消除器(它们不喜欢非线性效果)。

听起来您只是将音频转储到其他层。 SipEk 只是 pjsip 的包装器,但我假设您是通过 Microsoft RIL/etc 而不是通过 pjmedia 来做音频的。你需要对你的音频路径有一个很好的理解——东西在哪里被采样,是否/如何消除声学/线路回声,回声尾是什么,如何编码和打包,如何接收,抖动缓冲,丢失- 隐藏、解码和回放。

关于c# - 使用智能手机上的 RIL Audio 进行音频反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/824416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com