我试图改变pjsip android中使用的编解码器的优先级.
我能够获得编解码器的优先级,但在更改编解码器优先级后,它没有反映出来.
if( ep != null)
{
try {
CodecInfoVector codecInfoVector = ep.codecEnum();
if(!codecInfoVector.isEmpty()){
System.out.println("Codecs Enabled!!");
System.out.println("Number of codecs enabled now: "+codecInfoVector.size());
for(int i=0;i<codecInfoVector.size();i++)
{
CodecInfo codecInfo = codecInfoVector.get(i);
String codecId = codecInfo.getCodecId();
short codecPriority = 128;//use higher number for making preferred codec first.
short disableCodecPriority = 0;//use 0 to disable codec in sdp
System.out.println("Codec info now is: "+ codecId);
switch(codecId)
{
case "PCMA/8000/1":
if(Dialer_Properties.enablePCMA)
codecInfo.codecSetPriority("PCMA/8000",codecPriority);
else
codecInfo.codecSetPriority("PCMA/8000",disableCodecPriority);
break;
case "PCMU/8000/1":
if(Dialer_Properties.enablePCMU)
codecInfo.codecSetPriority("PCMU/8000",codecPriority);
else
codecInfo.codecSetPriority("PCMU/8000",disableCodecPriority);
break;
case "G729/8000/1":
if(Dialer_Properties.enableG729) …Run Code Online (Sandbox Code Playgroud) 我正在使用 python 开发一个基于pjsua2的 SIP 客户端。我有一个基于python 包装器调用的自定义 Call 类,我的代码能够获得活动连接。根据我的习惯onCallMediaState,我可以访问音频会议桥:
def onCallMediaState(self, prm):
"""
Manage call media state callbacks.
- Autoconnect audio
"""
ci = self.getInfo()
logger.info("onCallMediaState", media_size=ci.media.size())
self._print_call_info("onCallMediaState")
for media_index, media in enumerate(ci.media):
if media.type == pj.PJMEDIA_TYPE_AUDIO:
if ci.stateText == "CONFIRMED":
"""
It seems a bug with callbacks. CONFIRMED
is send at start and disconnect. So stop
record is manual, cannot use DISCONNECTD
"""
logger.info("Call CONFIRMED")
Run Code Online (Sandbox Code Playgroud)
此时,我可以用来media_index录制或播放通话中传入的音频。例如,对于记录:
def record_call(self, media_index):
"""
Record the …Run Code Online (Sandbox Code Playgroud) 我希望使用 Android Pjsua2 库在不中断音频通话的情况下即时暂停和取消暂停视频通话中的视频传输。但是有些我无法理解如何实现该功能以对 android pjsua2 应用程序进行采样。任何帮助将不胜感激。
我浏览了以下文档,但无法理解..如何实现它
enum pjsua_call_vid_strm_op 此枚举表示对呼叫的视频流操作。
PJSUA_CALL_VID_STRM_START_TRANSMIT 开始传输视频流。这将导致先前停止的流再次开始传输。请注意,不会将重新邀请/更新传输到远程,因为此操作仅对本地流进行操作。
PJSUA_CALL_VID_STRM_STOP_TRANSMIT 停止传输视频流。这将导致流在 TX 方向暂停,使其停止发送任何视频数据包。此操作不会将重新邀请/更新传输到远程。
链接文档
我正在尝试使用Python创建软件电话。我发现此链接描述了pjsua2,但是没有任何明确的步骤定义如何为python安装pjsua2软件包。
谁能为我定义安装可在python中使用的pjsua2的清晰步骤?