SIP如何更改音频编解码器

时间:2012-03-14 12:14:00

标签: android audio sip codec

我是这个领域的新手...我需要为Android创建SIP客户端...我在开发人员的网站上休闲演示,我创建了一些正在运行的应用程序。现在我需要找到一些方式如何改变音频编解码器...默认编解码器是g711 ...我怎么能改变它?你能提供一些指令,代码或教程吗?任何帮助表示赞赏...在此先感谢... 在这堂课中,我找不到任何可以帮助我的东西:http://developer.android.com/reference/android/net/sip/package-summary.html

2 个答案:

答案 0 :(得分:3)

G711实际上是PCM编解码器的另一个名称,它具有2种压缩算法(相同的压缩率) - 称为PCMA和PCMU。这些是最标准和最广泛使用的音频编解码器,几乎任何 Sip Server支持开箱即用。它们相当陈旧,与Speex相比,它不能提供良好的压缩效果。

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

实现音频编解码器。

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

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

有一些例子:imsdroid,csipsimple,sipdroid等,但它们使用外部sip-stack实现(doubango,mjsip)。 AFAIK Android sip-stack现在用途不是很广泛。

答案 1 :(得分:1)

也许您可以使用与SIP相关的API:android.net.rtp包含易于使用的AudioStream,AudioGroup和AudioCodec类。最后一个允许您选择所需的编解码器。 http://developer.android.com/reference/android/net/rtp/AudioStream.html

警告:这些仅在Honeycomb之后引入,因此如果您使用它,则只能定位具有此版本或以后安装的设备。考虑到你已经在使用android.net.sip(Gingerbread onwards),这应该不是什么大问题。