如何使用Android Pjsua 2暂停和取消暂停视频传输?

问题描述

我希望在进行动态视频通话时暂停和取消暂停视频传输,而不会使用Android Pjsua2库删除音频通话。但是有些我无法理解如何实现该功能以示例android pjsua2应用程序。任何帮助将不胜感激。

我仔细阅读了以下文档,但不了解..如何实现

枚举pjsua_call_vid_strm_op此枚举表示视频流 通话中的操作。

PJSUA_CALL_VID_STRM_START_TRANSMIT开始传输视频流。 这将导致先前停止的流再次开始传输。 请注意,由于没有重新邀请/更新将不发送到远程 此操作仅在本地流上进行。

PJSUA_CALL_VID_STRM_STOP_TRANSMIT停止传输视频流。 这将导致流在TX方向上暂停,从而导致 停止发送任何视频数据包。不得重新邀请/更新 通过此操作传输到远程。

链接documentation

解决方法

考虑以下代码:

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)
    }
}

其中managerpj::VidDevManagerlink)的实例(您可以从pj::Endpointlink)中获得,而callpj::Calllink)的实例。

反函数(恢复传输)的实现很明显。

祝你好运!

,

此文档太长且不合适。我也遇到过同样的问题。

以下内容可能会对您有所帮助:

SipManager.getInstance()?.activeCalls?.get(callId)?.mVideoPreview?.stop()

在这里, activeCalls MyCall 的实例。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...