【问题标题】:Audio feedback using RIL Audio on SmartPhone使用智能手机上的 RIL Audio 进行音频反馈
【发布时间】:2009-05-05 11:15:10
【问题描述】:

我们正在开发 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 的回调委托来处理音频内容。有没有其他人遇到过这样的音频反馈循环问题?使用 RIL Audio 还是 SipEk?有什么建议吗?

提前致谢!

【问题讨论】:

    标签: c# audio sip feedback ril


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多