问题描述
我希望在进行动态视频通话时暂停和取消暂停视频传输,而不会使用Android Pjsua2库删除音频通话。但是有些我无法理解如何实现该功能以示例android pjsua2应用程序。任何帮助将不胜感激。
我仔细阅读了以下文档,但不了解..如何实现
枚举pjsua_call_vid_strm_op此枚举表示视频流 通话中的操作。
PJSUA_CALL_VID_STRM_START_TRANSMIT开始传输视频流。 这将导致先前停止的流再次开始传输。 请注意,由于没有重新邀请/更新将不发送到远程 此操作仅在本地流上进行。
PJSUA_CALL_VID_STRM_STOP_TRANSMIT停止传输视频流。 这将导致流在TX方向上暂停,从而导致 停止发送任何视频数据包。不得重新邀请/更新 通过此操作传输到远程。
解决方法
考虑以下代码:
fun strmStopTransmit() {
if (manager.isCaptureActive(camDevId)) {
val callVidPrm = CallVidSetStreamParam()
callVidPrm.setCapDev(camDevId)
call.vidSetStream(pjsua_call_vid_strm_op.PJSUA_CALL_VID_STRM_STOP_TRANSMIT,callVidPrm)
}
}
其中manager
是pj::VidDevManager
(link)的实例(您可以从pj::Endpoint
(link)中获得,而call
是pj::Call
(link)的实例。
反函数(恢复传输)的实现很明显。
祝你好运!
,此文档太长且不合适。我也遇到过同样的问题。
以下内容可能会对您有所帮助:
SipManager.getInstance()?.activeCalls?.get(callId)?.mVideoPreview?.stop()
在这里, activeCalls 是 MyCall 的实例。