我正在尝试开发一个 Android 应用程序,该应用程序应支持与其他同行的音频。
信令应该按照这个原理工作。 https://developers.google.com/talk/call_signaling
我在我的项目中包含了 libjingle_peerconnection.jar。而且我可以成功地从另一个使用 libjingle 构建的 PC 应用程序(通过 xmpp 服务器)接收 IQ 数据包。
例如
<jingle xmlns='urn:xmpp:jingle:1' action='session-initiate' initiator='john....@testing.stuff.com' responder='par.mueller@testing.stuff..com/Smack' sid='GUV3WncaSdoPhQFF'>
<content creator='initiator' name='Audio'>
<description xmlns='urn:xmpp:jingle:apps:rtp:1' media='audio'>
<payload-type bitrate='32000' channels='1' clockrate='16000' id='103' name='ISAC' ptime='33'/>
<payload-type bitrate='56000' channels='1' clockrate='32000' id='104' name='ISAC' ptime='33'/>
<payload-type bitrate='128000' channels='1' clockrate='8000' id='105' name='L16' ptime='100'/>
<payload-type bitrate='256000' channels='1' clockrate='16000' id='107' name='L16' ptime='100'/>
<payload-type bitrate='512000' channels='1' clockrate='32000' id='108' name='L16' ptime='100'/>
<payload-type bitrate='128000' channels='2' clockrate='8000' id='109' name='L16' ptime='100'/>
<payload-type bitrate='256000' channels='2' clockrate='16000' id='111' name='L16' ptime='100'/>
<payload-type bitrate='512000' channels='2' clockrate='32000' id='112' name='L16' ptime='100'/>
<payload-type bitrate='64000' channels='1' clockrate='8000' id='0' name='PCMU' ptime='50'/>
<payload-type bitrate='64000' channels='1' clockrate='8000' id='8' name='PCMA' ptime='50'/>
<payload-type bitrate='64000' channels='2' clockrate='8000' id='110' name='PCMU' ptime='50'/>
<payload-type bitrate='64000' channels='2' clockrate='8000' id='118' name='PCMA' ptime='50'/>
<payload-type bitrate='13300' channels='1' clockrate='8000' id='102' name='ILBC' ptime='33'/>
<payload-type bitrate='64000' channels='1' clockrate='16000' id='9' name='G722' ptime='50'/>
<payload-type bitrate='64000' channels='2' clockrate='16000' id='119' name='G722' ptime='50'/>
<encryption required='0'>
<crypto crypto-suite='AES_CM_128_HMAC_SHA1_80' key-params='inline:6wTsrUisanoAvhiWgNDznyjZvO17Ex' tag='0'/>
</encryption></description></content></jingle></iq></body>
在我收到 session-initiate+transport-info 数据包之后,是时候创建我自己的数据包信息并将其发送回调用者了。
我假设我应该使用 libjingle_peerconnection.jar 中的类并提取我需要的信息。但是我该怎么做呢?