android - SIP 如何更改音频编解码器

标签 android audio sip codec

我是这个领域的新手...我需要为 android 创建 SIP 客户端...我在开发者网站上进行了休闲演示,并创建了一些可以正常工作的应用程序。现在我需要找到一些方法来更改音频编解码器...默认编解码器是 g711...我该如何更改它???你能提供一些说明、代码或教程吗???任何帮助表示赞赏...提前致谢... 在这个类中,我找不到任何对我有帮助的东西:http://developer.android.com/reference/android/net/sip/package-summary.html

最佳答案

G711 实际上是 PCM 编解码器的别称,它有 2 种压缩算法(相同的压缩率)- 称为 PCMA 和 PCMU。这些是最标准和使用最广泛的音频编解码器,几乎任何 Sip 服务器都支持开箱即用。例如,与 Speex 相比,它们相当老旧并且无法提供良好的压缩。

SIP 通信中的音频编解码器通过 SDP 协议(protocol)在 INVITE 消息中协商。 更改音频编解码器需要执行以下步骤:

实现音频编解码器。

将此编解码器(在应用程序级别)合并到您的 sip 客户端中。高层次的说法——你有网络层(最有可能是 UDP),而不是数据层(你处理 RTP 数据包的地方)和 SIP 消息。

您需要一种机制将 RTP 数据包连接到您要使用的音频编解码器。 另一方面,您需要使用 SDP 协议(protocol)与所有参与者协商音频编解码器。

有一些示例,例如:imsdroid、csipsimple、sipdroid 等,但它们使用外部 sip-stack 实现(doubango、mjsip)。据我所知,Android sip-stack 目前还不是很通用。

关于android - SIP 如何更改音频编解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9701752/

相关文章:

java - SearchView 不启动 SearchableActivity

php - 值在 TextView 中未传递到 Mysql 数据库

java - 如何使用 Java 中的 AnyChart for Android 创建 BubbleMap

ubuntu - pjsua_aud.c .无法打开文件进行播放 : Not found (PJ_ENOTFOUND)

java - 在哪里可以找到有关 jain-sip 的文档

java - 横向上的 TabLayout 不显示 gravity_fill 和 mode_fixed

audio - 我可以使用 DirectSound 轻松地进行频带过滤吗?如果没有,我该怎么做?

audio - 使用 lame.exe 编码 Kinect 音频的正确方法

java - 在Java中的不同时刻播放多种声音

asterisk - 在卡麦利奥的第一次测试