JRTCSDK-Windows  v1.1
API文档
| Public 成员函数 | 静态 Public 成员函数 | 属性 | 所有成员列表
JRTCSDK.JCMediaChannel.JCMediaChannel类 参考

类似音视频房间的概念,可以通过频道号加入此频道,从而进行音视频通话 更多...

class  JCPictureLayoutParams
 画中画录制布局参数 更多...
 
class  JCPictureLayoutPartParams
 画中画录制成员布局参数 更多...
 
class  PropChangeParam
 属性变化标识类 更多...
 

Public 成员函数

bool LocalRecording ()
 是否正在本地录制 更多...
 
bool SetConfig (string key, string value)
 设置相关配置参数 更多...
 
string GetConfig (string key)
 获取相关配置参数 更多...
 
int InviteSipUser (JRTCSipInviteParam sipParam)
 邀请Sip用户,一般用于对接落地网关等 更多...
 
ConfState GetState ()
 自己当前在频道中的状态 更多...
 
int Query (string channelId)
 查询频道相关信息 更多...
 
bool Join (string channelIdOrUri, JCMediaChannelJoinParam joinParam)
 加入频道 更多...
 
bool SetPictureLayout (JCPictureLayoutParams layoutParams)
 设置画中画布局 更多...
 
bool EnableLocalRecord (bool enable, JRTCRecordLocalParam recordParam)
 开启/关闭本地录制 更多...
 
bool EnableCDN (bool enable)
 开启/关闭CDN推流 更多...
 
bool Leave ()
 离开频道 更多...
 
bool Stop ()
 解散频道 更多...
 
bool EnableUploadAudioStream (bool enable)
 开启/关闭发送本地音频流 更多...
 
bool EnableUploadVideoStream (bool enable)
 开启/关闭发送本地视频流 更多...
 
bool SetVideoCapture (string path)
 设置本地视频文件替代摄像头 目前支持视频文件格式有限制,仅支持mp4,avi格式,并且只支持视频编解码H264,和音频格式PCMA 更多...
 
bool EnableAudioOutput (bool enable)
 开启/关闭音频输出 更多...
 
bool EnableScreenOrWindowShare (bool enable, string videoSource, int iFrameRate, int top, int bottom, int left, int right)
 开启/关闭区域共享 更多...
 
bool EnableScreenOrWindowShare (bool enable, string videoSource)
 开启/关闭屏幕共享 更多...
 
bool RequestVideo (JCMediaChannelParticipant participant, PictureSize pictureSize)
 订阅频道中其他成员的视频流 更多...
 
bool RequestVideo (JCMediaChannelParticipant participant, JRTCVideoSize videoSize)
 订阅频道中其他成员的视频流 更多...
 
bool UnRequestVideo (JCMediaChannelParticipant participant)
 取消订阅频道中其他成员的视频流 更多...
 
bool RequestScreenVideo (string screenUri, PictureSize pictureSize)
 订阅频道中屏幕共享的视频流 更多...
 
bool RequestScreenVideo (string screenUri, JRTCVideoSize videoSize)
 订阅频道中屏幕共享的视频流 更多...
 
bool UnRequestScreenVideo (string screenUri)
 取消订阅频道中屏幕共享的视频流 更多...
 
bool EnableCdn (bool enable, int keyInterval)
 开启/关闭CDN推流 更多...
 
bool EnableRemoteRecord (bool enable, JRTCRecordRemoteParam recordParam)
 开启/关闭远程录制 更多...
 
JCMediaChannelParticipant GetParticipant (string userId)
 根据用户ID获取频道内成员对象 更多...
 
List< JCMediaChannelParticipantGetParticipants ()
 获取所有频道中的成员列表 更多...
 
bool SendMessage (string type, string content, string toUserId)
 发送消息,消息内容不能大于4K 更多...
 
string GetStatistics ()
 获取统计信息 更多...
 
string GetJsonStats ()
 获取天赛实时统计信息 更多...
 
bool SetCustomProperty (string key, string value)
 设置媒体频道中的自定义属性 更多...
 
bool ConfirmRecordFile (bool confirm)
 确认录制上传 更多...
 
bool GetRecordPreviewInfo (string mid)
 获取视频预览链接 更多...
 
string GetCustomProperty (string key)
 获取频道自定义属性 更多...
 
bool SendCommand (string name, string param)
 发送频道指令 更多...
 
bool SetRatio (float ratio)
 设置本端视频宽高比 更多...
 
bool SetScreenMode (JRTCMergeModeParam modeParam)
 设置分屏模式 更多...
 
int GetSpkLevel ()
 当前扬声器音量级别,区间0-100,用以测试设备 更多...
 
int GetMicLevel ()
 当前麦克风音量级别,区间0-100,用以测试设备 更多...
 
bool SendAudioEmptyPack (bool empty)
 发送音频空包 更多...
 
bool SendVideoEmptyPack (bool empty)
 发送视频空包 更多...
 
bool SetVideoDot (string timespan, string info)
 视频打点 更多...
 
void WatermarkSetLibPath (string path)
 动态加载水印sdk 更多...
 
void WatermarkSetPicture (string pictureFile, int startTime, int endTime, int posX, int posY)
 设置水印图片 更多...
 
void WatermarkSetText (string text, string fontFile, int fontSize, int fontColor, int backColor, bool blod, bool italic, bool underline, int alignment)
 设置水印文字 更多...
 
void WatermarkSetTimestamp (string fontFile, int fontSize, int colorType, int borderWidth, int posType, int posX, int posY, bool tsIsMs)
 设置水印时间戳 更多...
 
void WatermarkSetState (bool state)
 设置水印状态 更多...
 
String GetNetWorkjson ()
 获取网络状态json 更多...
 
void GetUploadUrl (string fileId)
 获取文件上传路径 更多...
 
void OnSDKEvent (JRTCSDKEvent sdkEvent)
 事件上报回调 更多...
 
- Public 成员函数 继承自 JRTCSDK.Common.JRTCModuleBase
void SetBizId (string bizId)
 设置业务流水号 更多...
 

静态 Public 成员函数

static JCMediaChannel Create (JCClient.JCClient client, JCMediaDevice.JCMediaDevice mediaDevice, JCMediaChannelCallback callback)
 创建 JCMediaChannel 对象 更多...
 
static void Destroy ()
 销毁 JCMediaChannel 对象 更多...
 

属性

string ChannelId [get, set]
 频道标识 更多...
 
string ChannelUri [get, set]
 频道Uri 更多...
 
int ChannelNumber [get, set]
 频道号,由服务器生成 更多...
 
bool UploadLocalAudio [get, set]
 是否上传本地音频数据 更多...
 
bool UploadLocalVideo [get, set]
 是否上传本地视频数据 更多...
 
string Title [get, set]
 频道标题 更多...
 
string ScreenRenderId [get, set]
 屏幕共享时的视频流ID,无屏幕共享时为 null 更多...
 
string ScreenUserId [get, set]
 发起屏幕共享者的用户ID,无屏幕共享时为 null 更多...
 
RemoteRecordState RecordState [get, set]
 获得远程视频录制状态,详见: 更多...
 
CdnState CdnState [get, set]
 获得cdn推流状态,详见: 更多...
 
JCMediaChannelParticipant SelfParticipant [get]
 获取自身成员对象 更多...
 
string Password [get]
 获取频道密码 更多...
 
string DeliveryUri [get]
 CD URI 更多...
 
long ConfId [get]
 获取本地频道标识 更多...
 
string Mid [get]
 获取频道唯一标识(服务器生成) 更多...
 

详细描述

类似音视频房间的概念,可以通过频道号加入此频道,从而进行音视频通话

成员函数说明

◆ ConfirmRecordFile()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.ConfirmRecordFile ( bool  confirm)

确认录制上传

参数
confirm是否上传, true: 上传; false: 不上传
返回
接口调用成功失败

◆ Create()

static JCMediaChannel JRTCSDK.JCMediaChannel.JCMediaChannel.Create ( JCClient.JCClient  client,
JCMediaDevice.JCMediaDevice  mediaDevice,
JCMediaChannelCallback  callback 
)
static

创建 JCMediaChannel 对象

JCMediaChannel 的所有接口函数,如无特殊说明,都建议在主线程调用。
当需要创建多个 JCMediaChannel 对象时,可多次调用该方法。
调用此方法前确保 JCClient 已完成初始化,即 State 方法获取的状态值不等于 NotInit

参数
clientJCClient 对象
mediaDeviceJCMediaDevice 对象
callbackJCMediaChannelCallback 对象,用于实现 JCMediaChannelCallback 事件
返回
JCMediaChannel对象

◆ Destroy()

static void JRTCSDK.JCMediaChannel.JCMediaChannel.Destroy ( )
static

销毁 JCMediaChannel 对象

该方法为同步调用,需要等待 JCMediaChannel 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCMediaChannel 的其它方法和回调。
我们 不建议JRTCSDK 的回调中调用此方法销毁 JCMediaChannel 对象,否则可能出现崩溃。
如需在销毁后再次创建 JCMediaChannel 实例,需要等待 Destroy 方法执行结束后再创建实例。

◆ EnableAudioOutput()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableAudioOutput ( bool  enable)

开启/关闭音频输出

该方法可实现本地静音功能。关闭时听不到频道内其他成员的声音,不影响其他成员;开启时可以听到其他成员声音。 初始化 JCMediaChannel 时,音频输出功能默认是开启的。若要加入频道时听不见其他成员的声音,建议在调用 Join 加入频道前设置。

参数
enable是否开启音频输出
  • true: 开启音频输出
  • false: 关闭音频输出
返回
接口调用结果

◆ EnableCDN()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableCDN ( bool  enable)

开启/关闭CDN推流

参数
enable开启/关闭CDN推流
  • true: 开启 CDN 推流
  • false: 关闭 CDN 推流
返回
接口调用结果

◆ EnableCdn()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableCdn ( bool  enable,
int  keyInterval 
)

开启/关闭CDN推流

参数
enable开启/关闭CDN推流
  • true: 开启 CDN推流
  • false: 关闭 CDN 推流
keyInterval推流关键帧间隔(毫秒),当参数 enable 为 true 时有效,-1表示使用默认值(5000毫秒)
返回
接口调用结果

◆ EnableLocalRecord()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableLocalRecord ( bool  enable,
JRTCRecordLocalParam  recordParam 
)

开启/关闭本地录制

参数
enable开启或关闭本地录制
  • true: 开启本地录制
  • false: 关闭本地录制
recordParam本地录制参数配置,当 enable == true 时,FilePath 必须设置,其余参数不设置则使用默认配置;当 enable == false 时,recordParam 可传 null
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ EnableRemoteRecord()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableRemoteRecord ( bool  enable,
JRTCRecordRemoteParam  recordParam 
)

开启/关闭远程录制

可用过 RemoteRecordState 接口获取当前服务器录制状态。

参数
enable开启或关闭远程录制
  • true: 开启视频录制
  • false: 关闭视频录制
recordParam录制参数,,详见 JRTCRecordRemoteParam。当 enable == false 时,可传 null;当 enable == true 且按照默认配置进行录制可传 null
返回
接口调用结果

◆ EnableScreenOrWindowShare() [1/2]

bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableScreenOrWindowShare ( bool  enable,
string  videoSource 
)

开启/关闭屏幕共享

参数
enable开启或关闭屏幕分享
videoSource屏幕共享视频源ID(窗口ID或屏幕ID)
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ EnableScreenOrWindowShare() [2/2]

bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableScreenOrWindowShare ( bool  enable,
string  videoSource,
int  iFrameRate,
int  top,
int  bottom,
int  left,
int  right 
)

开启/关闭区域共享

参数
enable开启或关闭区域共享
videoSource区域共享视频源(窗口ID或屏幕ID)
iFrameRate帧率
top上边距
bottom下边距
left左边距
right右边距
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ EnableUploadAudioStream()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableUploadAudioStream ( bool  enable)

开启/关闭发送本地音频流

调用该方法可开启或关闭发送本地音频流。开启后,频道成员将听见本端声音;关闭后,频道成员将听不见本端声音。 频道中调用此方法不影响接收远端音频。 初始化 JCMediaChannel 时,默认不发送本地音频流。若要加入频道时,让频道内其他成员听见本端声音,需要在调用 Join 加入频道前设置。 该方法在频道内和频道外均可调用,且在离开频道后该设置仍然有效。也就是说这一次设置了开启发送本地音频流,那么在下一次加入频道时默认会开启发送本地音频流。 会议中也可调用此方法开启或关闭发送本地音频流,服务器会更新状态并同步给其他频道成员,即频道中所有成员都会收到 OnParticipantUpdate 回调。

参数
enable开启/关闭本地音频流
  • true: 开启,即发送本地音频流
  • false: 关闭,即不发送本地音频流
返回
接口调用结果
  • true: 接口调用成功
    • 在调用此方法时,用户未加入频道,不会收到回调
    • 在调用此方法时,用户已在频道中,会收到 OnMediaChannelPropertyChange 回调
  • false: 接口调用异常

◆ EnableUploadVideoStream()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableUploadVideoStream ( bool  enable)

开启/关闭发送本地视频流

调用该方法可开启或关闭发送本地视频流。开启后,频道成员将看见本端画面;关闭后,频道成员将看不见本端画面。 频道中调用此方法不影响接收远端视频流。 初始化 JCMediaChannel 时,默认不发送本地视频流。若要加入频道时,让频道内其他成员看见本端画面,需要在调用 Join 加入频道前设置。 该方法在频道内和频道外均可调用,且在离开频道后该设置仍然有效。也就是说这一次设置了开启发送本地视频流,那么在下一次加入频道时默认会开启发送本地视频流。 会议中也可调用此方法开启或关闭发送本地视频流,服务器会更新状态并同步给其他频道成员,即频道中所有成员都会收到 OnParticipantUpdate 回调。

参数
enable开启/关闭本地视频流
  • true: 开启,即发送本地视频流
  • false: 关闭,即不发送本地视频流
返回
接口调用结果
  • true: 接口调用成功
    • 在调用此方法时,用户未加入频道,不会收到回调
    • 在调用此方法时,用户已在频道中,会收到 OnMediaChannelPropertyChange 回调
  • false: 接口调用异常

◆ GetConfig()

string JRTCSDK.JCMediaChannel.JCMediaChannel.GetConfig ( string  key)

获取相关配置参数

参数
key参数关键字,目前该参数只支持JCMediaChannelConfigNotifyVolumeChange 关键字。
返回
接口调用结果
  • 调用成功返回字符串类型具体值
  • 调用失败返回 null

◆ GetCustomProperty()

string JRTCSDK.JCMediaChannel.JCMediaChannel.GetCustomProperty ( string  key)

获取频道自定义属性

参数
key属性 key
返回
key 对应属性值

◆ GetJsonStats()

string JRTCSDK.JCMediaChannel.JCMediaChannel.GetJsonStats ( )

获取天赛实时统计信息

以Json字符串形式返回,包含以下信息:
{ "localActor": "[username:2333@100645.cloud.justalk.com]", // actorID "sendBWE": "1440", // 发送带宽估计 "recvBWE": "929", // 接收带宽估计 "sendBr": "16", // 发送码率 "recvBr": "772", // 接收码率 "sendJitter": "1", // 发送jitter "recvJitter": "0", // 接收jitter "sendLossRate": "0", // 发送丢包率 "recvLossRate": "0", // 接收丢包率 "encodeTime": "0", // 编码时长 "rtt":"5", // 往返延时 "audioSendBr": "19", // 音频发送码率 "videoSendBr": "0", // 视频发送码率 "audioLevel": "58", // 音量 "event":"" }

◆ GetMicLevel()

int JRTCSDK.JCMediaChannel.JCMediaChannel.GetMicLevel ( )

当前麦克风音量级别,区间0-100,用以测试设备

返回
麦克风音量大小

◆ GetNetWorkjson()

String JRTCSDK.JCMediaChannel.JCMediaChannel.GetNetWorkjson ( )

获取网络状态json

返回

◆ GetParticipant()

JCMediaChannelParticipant JRTCSDK.JCMediaChannel.JCMediaChannel.GetParticipant ( string  userId)

根据用户ID获取频道内成员对象

参数
userId用户ID
返回

◆ GetParticipants()

List<JCMediaChannelParticipant> JRTCSDK.JCMediaChannel.JCMediaChannel.GetParticipants ( )

获取所有频道中的成员列表

返回
返回成员对象列表

◆ GetRecordPreviewInfo()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.GetRecordPreviewInfo ( string  mid)

获取视频预览链接

参数
mid通话标识
返回
接口调用成功失败

◆ GetSpkLevel()

int JRTCSDK.JCMediaChannel.JCMediaChannel.GetSpkLevel ( )

当前扬声器音量级别,区间0-100,用以测试设备

返回
扬声器音量大小

◆ GetState()

ConfState JRTCSDK.JCMediaChannel.JCMediaChannel.GetState ( )

自己当前在频道中的状态

返回
当前在频道中的状态,详见:

◆ GetStatistics()

string JRTCSDK.JCMediaChannel.JCMediaChannel.GetStatistics ( )

获取统计信息

以字符串形式返回,其中包含 "Config", "Network","Transport" 和 "Participants" 4个节点,统计信息具体内容如下:
{ "Config": // 音视频设置信息 { "Audio Config: // 音频设置 { "SRTP": off, // 是否对音频RTP数据加密,以及加密会显示使用的加密协议,加密协议两端一致才会音频互通正常 "Codec": opus, // 本端设置的音频编码 "Payload": 116, // 音频payload的大小 "Bitrate": 16000, // 音频码率 "Pkt Len": 60, // 音频包长 "Nack": off, // 丢包是否允许数据包重传 "RTX": off, // 是否允许RTX技术 "FEC/RED": off, // 是否开启FEC "AEC": on, // 是否开启回声消除 "Mode": OS, // AEC模式 "HowlSupp": Auto, // AEC HowlSupp模式 "Sts": Auto, // AEC Sts模式 "AGC": on, // 是否开启发送端自动增益 "Mode": Fixed, // 发送端AGC Mode "Target": 3, // 发送端AGC Target "Gain": 9, // 接收端AGC Gain "Rx AGC": off, // 是否开启接收端自动增益 "Mode": Fixed, // 接收端AGC Mode "Target": 3, // 接收端AGC Target "Gain": 9, // 接收端AGC Gain "VAD": off, // 是否开启VAD "Mode": Mid, // VAD Mode "ANR": off, // 是否开启发送端噪音抑制 "Mode": High, // ANR mode "Noise": N/A, // 噪音音量 "SNR": N/A, // 信噪比 "Rx ANR": off, // 是否开启接收端噪音抑制 "Mode": Low, // 接收端ANR mode "ARS": off, // 是否开启音频码率控制 "BR Min": N/A, // ARS码率最小值 "BR Max": N/A // ARS码率最大值 }, "Video Config": // 视频设置 { "SRTP": off, // 是否对音频RTP数据加密,以及加密会显示使用的加密协议,加密协议两端一致才会音频互通正常 "Codec": H264-SVC, // 双方通话采用的编解码类型 "Payload": 125, // 视频Payload的大小 "Bitrate": 2250, // 视频码率,单位kbps "Framerate": 24, // 视频帧率,单位fps "Resolution": 1280x720, // 视频分辨率 "FEC": on|124|123, // FEC是否打开和payload的类型号 "FIR": off, // 是否允许重发关键帧 "Key Interval": 0, // 允许的最小关键帧间隔 "Repeat": 0, // 关键帧丢失是否允许重发 "NACK": off, // 丢包是否允许数据包重传 "RTX": off, // 是否允许RTX技术,RTX的payload类型 "TMMBR": off, // 是否允许带宽估计 "RPSI": off, // 是否允许RPSI技术 "Small NALU": on, // 是否允许NALU技术 "ARS": off, // 是否开启ARS自动码率检测 "BR Min": 10, // ARS发送码率下限 "BR Max": 2000, // ARS发送码率上限 "FR Min": 1, // ARS发送帧速率下限 "FR Max": 30, // ARS发送帧速率上限 "Res. Ctrl": off, // 是否允许分辨率控制 "Res. Mode": 0, // 分辨率Mode "Fr Ctrl": on, // 是否允许帧速率控制 "CPU Load Ctrl": off, // 是否允许CPU控制 "Target": 80, // CPU控制的最大使用率 "Bw Efficient": off, // 是否采用节省带宽模式 "Error Conceal": off, // 是否允许错误隐藏技术,在解码出错的时候采用\ "Enhance color": off, // 是否采用颜色增强技术 "Boost bright": off, // 是否采用亮度增强技术 "Boost contrast": off, // 是否采用对比度增强技术 "RTP Ext": CVO, // 使用的RTP扩展的类型 "Render Name": N/A, // 渲染图像的名字 "SVC": "320 180 250 640 360 600 1280 720 1400", // 会议SVC配置 "TemporalLayers": 4, // 取值1、2、3、4,会议时间层设置 "PreferMode":Clear // 偏好设置 } }, "Network": // 网络统计信息 { "Send Statistic: // 数据发送统计信息 { "Packets": 181|1305|0|0, // 发送的数据包的个数。正常包个数 | 探测包个数 | RED包个数 | NACK包个数 "RTT": 4, // 网络双向延时的时间,单位为毫秒 "Jitter": 2, // 网络的扰动,表征数据包抖动的时间,单位毫秒 "Lost": 2, // 丢失的数据包的个数 "LostRate": 0, // 当前的丢包率,单位百分比 "RelayLost": 0, // 服务器转发丢包率 "RelayRtt": 0, // 服务器转发往返时延,单位为毫秒 "BitRate/BWE": 16/1345, // BitRate表示当前发送的数据包的码率,单位kbps;BWE表示当前发送带宽的估计值 "AudioSend": 0|0, // 实际发送音频包次数|估计发送音频包次数 "VideoSend": 0|0, // 实际发送视频包次数|估计发送视频包次数 "ScreenSend": 0|0, // 实际发送屏幕共享包次数|估计发送屏幕共享包次数 "MaxPredKbps": 100, // 发送最大需求码率 "Server(102679111220103708)": // 选用的第一个服务器 [ 2211(1): BWE(1345 | 697) LOSS(0 | 0) OUT(A: 37) IN(A: 0;) ] }, "Recv Statistic": // 数据接收统计信息 { "Packets": 1423|675|0|0, // 收到的数据包的个数。正常包个数 | 探测包个数 | RED包个数 | NACK包个数 "Jitter": 1, // 网络的扰动,表征数据包乱序的时间,单位毫秒 "Lost": 0, // 丢失的数据包的个数 "Lost Ratio": 0, // 当前的丢包率,单位百分比 "BitRate/BWE":178/2291, // BitRate表示当前接收的数据包的码率,单位kbps;BWE表示当前接收带宽的估计值 "Server(102679111220103708)": // 选用的第一个服务器 [ 2211(3): BWE(1979 | 2150) LOSS(0 | 0) OUT(A: 37;FPS:24,FEC:10,SUB:00f0=3456) IN(A:17; V:2273=2211[00f0]2273) ] } }, "Transport": // 运输通道 { "Local": 2.1923737535:32414, // 本地地址 "Remote": 2:11023, // 远端地址 "LastPaths": 2,2, // 最后使用通道 "Path": 2 [udp], // 通道名 "Step1": Delay/Loss(S/R): 4/0/0, // 通道质量 "Cost": 7** (best: -1) // 通道分数

}, "Participants": { "2333": // 成员为自己 { "Audio Sending Stats": // 音频发送数据统计 { "Packets": 143, // 发送的数据包的个数 "BitRate": 18.5, // 发送的数据包的码率,单位kbps "FecPrecent": 0 // 音频Fec保护百分比,N/A表示未开启FEC保护 }, "Video Sending Stats": // 视频发送数据统计 { "Packets": 19502, // 发送的数据包的个数 "Capture Res": 640x360, // 视频采集分辨率 "Capture Fr": 30, // 视频采集帧率 "FPS/IDR": [0|0|24|0]/3, // 当前视频发送帧速/已发送的视频关键帧数 "Resolution": 1280x720[0 | 0 | 0], // 当前发送图像最大尺寸。[]中为每种尺寸的帧率,取值范围为0到f(十六进制),0表示该层视频未被发送, 值越大表示该层视频帧率越高; "Bitrate/Setrate": 0/2250, // Bitrate表示当前发送的数据包的码率,单位kbps; Setrate表示视频编码的目标码率,单位kbps。 "QP": 20, // 发送当前图像的量化步长(0-51),越小图像画质越好。 "EncodeTime": 10, // 当前编码时间,可以体现终端编码时占用的CPU性能,越大表示CPU占有越高,单位毫秒 "Codec": H264-SVC, // 采用的编解码类型 "FecPrecent": 20 // 视频Fec保护百分比,N/A表示未开启FEC保护 }, "Be Subscribed Stats" // 被订阅统计信息 { "Audio": true, // 音频是否被订阅 "Video": [0|0|F|0] // [S0|S1|S2|S3]表示4个空间层被订阅 }, "Publish Stats": // 当前音视频发布状态 { "Audio": true, // 当前音频发布状态 "Video": true // 当前视频发布状态 } }, "6666" // 成员不是自己 { "Audio Receiving Stats": // 音频接收统计信息 { "Packets": 40243, // 接收的数据包的个数 "BitRate": 18.5, // 当前接收的数据包的码率,单位kbps。 "EpdRate/lr/dc": 0/0/0, // expand rate/loss rate/discard rate。neteq buffer中的扩展比例/丢包比例/丢弃比例 }, "Video Receiving Stats": // 视频接收统计信息 { "Packets": 19502, // 接收的数据包的个数 "BitRate": 161, // 当前发送的数据包的码率,单位kbps "FPS/FIR": 24/0, // 当前视频接收帧率/视频关键帧请求个数 "Resolution": 1280x720, // 当前接收分辨率 "Render FR": 24, // 当前渲染帧速率 "Codec": H264-SVC, // 采用的编解码类型 "PvMos": 4.9, // 表示过去5s平均流畅度MOS分,每5s更新一次。体现视频画面的流畅程度。1到5分,1分最差,5分最好 "SMOS": 5, // 表示当前清晰度MOS分。体现视频画面的清晰程度。1到5分,1分最差,5分最好。前5s是0,是正常现象,因为PvMos还没有值 }, "Subscribed Stats": // 订阅统计信息 { "Channel Audio": true, // 当前是否发布音频 "Audio": true, // 当前音频订阅状态 "Video": [0|0|F|0] // [S0|S1|S2|S3]表示4个空间层被订阅 } } } }

◆ GetUploadUrl()

void JRTCSDK.JCMediaChannel.JCMediaChannel.GetUploadUrl ( string  fileId)

获取文件上传路径

调用此接口,fileId 非必须指定时可传空字符串。 调用成功后,文件上传路径等具体信息可通过 OnGetUploadUrlResult 回调获取。 获取到文件上传路径等信息后,可通过 UploadFile 接口上传或续传文件至服务器。

参数
fileId文件id,如果传空,则由服务器自动生成

◆ InviteSipUser()

int JRTCSDK.JCMediaChannel.JCMediaChannel.InviteSipUser ( JRTCSipInviteParam  sipParam)

邀请Sip用户,一般用于对接落地网关等

参数
sipParam邀请sip用户入会的配置参数,详见 JRTCSipInviteParam
返回
接口调用结果

◆ Join()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.Join ( string  channelIdOrUri,
JCMediaChannelJoinParam  joinParam 
)

加入频道

该方法让用户加入通话频道,在同一个频道内的用户可以互相通话。 如果用户已在频道中,必须退出当前频道,即处于空闲状态,才能进入其他频道,否则将直接返回 false,且不会收到回调通知。

参数
channelIdOrUri媒体频道标识或者频道Uri
joinParamJCMediaChannelJoinParam频道参数,传 null 则使用默认配置
返回
接口调用结果
  • true: 接口调用成功,会收到 OnJoin 回调
  • false: 接口调用异常

◆ Leave()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.Leave ( )

离开频道

返回
接口调用结果
  • true: 接口调用成功,非空闲状态下,会收到 OnLeave 回调
  • false: 接口调用异常

◆ LocalRecording()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.LocalRecording ( )

是否正在本地录制

  • true: 本地录制中
  • false: 未进行本地录制

◆ OnSDKEvent()

void JRTCSDK.JCMediaChannel.JCMediaChannel.OnSDKEvent ( JRTCSDKEvent  sdkEvent)

事件上报回调

参数
event事件对象

实现了 JRTCSDK.JCClient.JCClientCallback.

◆ Query()

int JRTCSDK.JCMediaChannel.JCMediaChannel.Query ( string  channelId)

查询频道相关信息

调用此接口可以查询频道相关信息,例如频道是否存在,频道人数等。 查询结果通过 OnQuery 回调通知。

参数
channelId频道标识
返回
操作id,与 OnQuery 回调中的 operationId 对应

◆ RequestScreenVideo() [1/2]

bool JRTCSDK.JCMediaChannel.JCMediaChannel.RequestScreenVideo ( string  screenUri,
JRTCVideoSize  videoSize 
)

订阅频道中屏幕共享的视频流

参数
videoSize视频请求尺寸
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ RequestScreenVideo() [2/2]

bool JRTCSDK.JCMediaChannel.JCMediaChannel.RequestScreenVideo ( string  screenUri,
PictureSize  pictureSize 
)

订阅频道中屏幕共享的视频流

参数
pictureSize视频请求的尺寸类型
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ RequestVideo() [1/2]

bool JRTCSDK.JCMediaChannel.JCMediaChannel.RequestVideo ( JCMediaChannelParticipant  participant,
JRTCVideoSize  videoSize 
)

订阅频道中其他成员的视频流

参数
participant成员对象
videoSize视频请求的尺寸
返回
接口调用结果

◆ RequestVideo() [2/2]

bool JRTCSDK.JCMediaChannel.JCMediaChannel.RequestVideo ( JCMediaChannelParticipant  participant,
PictureSize  pictureSize 
)

订阅频道中其他成员的视频流

当 requestSize 为 None 时表示取消订阅。

参数
participant成员对象
pictureSize视频请求的尺寸类型
返回
接口调用结果

◆ SendAudioEmptyPack()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SendAudioEmptyPack ( bool  empty)

发送音频空包

该接口不会导致成员的 Audio 属性变化,发送音频空包不代表停止发送音频流。

参数
empty音频发送包是否为空包
  • true: 发送音频空包
  • false: 发送正常音频包
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ SendCommand()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SendCommand ( string  name,
string  param 
)

发送频道指令

指令名: StartForward 指令作用:请求服务器开始转发音视频 参数格式:{"MtcConfUserUriKey": "用户Uri", "MtcConfMediaOptionKey": "类型"} 用户Uri: 通过调用底层Mtc接口获取 MtcUser.Mtc_UserFormUri(EN_MTC_USER_ID_USERNAME, userId); 类型: 服务器转发分三种 音频、视频、音视频,具体可参考底层mtc_conf.h下的MtcConfMedia的枚举值。 注意1:指令发送成功后会收到 onParticipantUpdate 回调 举例: {"MtcConfUserUriKey": "[username:justin@sample.cloud.justalk.com]", "MtcConfMediaOptionKey": 3}

指令名: StopForward 指令作用:请求服务器停止转发音视频 参数格式:{"MtcConfUserUriKey": "用户URL", "MtcConfMediaOptionKey": "类型"} 用户Uri: 通过调用底层Mtc接口获取 MtcUser.Mtc_UserFormUri(EN_MTC_USER_ID_USERNAME, userId); 类型: 服务器转发分三种 音频、视频、音视频,具体可参考底层mtc_conf.h下的MtcConfMedia的枚举值。 注意1:指令发送成功后会收到 onParticipantUpdate 回调 举例: {"MtcConfUserUriKey": "[username:justin@sample.cloud.justalk.com]", "MtcConfMediaOptionKey": 3}

指令名: ChangeTitle 指令作用:请求修改会议主题 参数格式: {"MtcConfTitleKey":"修改的内容"} 修改的内容: 比如原来主题设置的是"123",现在改为"321"。 注意1:指令发送成功后会收到 OnMediaChannelPropertyChange 回调 注意2:可通过 JCManager.shared().MediaChannel.title 获取主题 举例:{"MtcConfTitleKey": "321"}

指令名: SetPartpProp 指令作用:批量修改成员状态,角色,昵称。 参数格式: {"MtcConfStateKey":要修改的成员状态,"MtcConfDisplayNameKey":"要修改的成员昵称","MtcConfPartpLstKey":["用户Uri",...],"MtcConfRoleKey":7} 要修改的成员状态: 具体可参考底层 mtc_conf.h 下的 MtcConfState 的枚举值 要修改的成员角色: 具体可参考底层 mtc_conf.h 下的 MtcConfRole 的枚举值 要修改的成员昵称: 比如"123" 用户Uri:通过调用底层Mtc接口获取 MtcUser.Mtc_UserFormUri(EN_MTC_USER_ID_USERNAME, userId); 注意1:指令发送成功后会收到 onParticipantUpdate 回调 注意2:MtcConfStateKey、MtcConfDisplayNameKey、MtcConfRoleKey这三个字段,可根据用户想修改哪个值,就在json字符串里面加入哪个。 注意3:MtcConfPartpLstKey 可包含多个用户uri进行批量修改 举例:{"MtcConfStateKey":1,"MtcConfDisplayNameKey":"1314","MtcConfPartpLstKey":["[username:10086@sample.cloud.justalk.com]"],"MtcConfRoleKey":7}

指令名:ReplayApplyMode 指令作用:设置推流布局模式 指令参数格式:{"MtcConfCompositeModeKey": 参数值} 参数值: 1 平铺模式,所有视频均分平铺 2 讲台模式,共享为大图,其他视频为小图 3 演讲模式,共享为大图,共享者视频为小图,其他不显示 4 自定义模式,由ReplayApplyLayout指令设置所有视频布局 5 智能模式。 举例:输入指令参数{"MtcConfCompositeModeKey": 2}就是讲台模式

指令名:ReplayApplyLayout 指令作用:为多用户设置自定义推流布局 指令参数格式:{[{"MtcConfUserUriKey": "用户uri", "MtcConfPictureSizeKey": 视频尺寸,"MtcConfRectangleKey": 图像矩形的具体方位和长宽}],...} 用户uri:通过调用底层Mtc接口获取MtcUser.Mtc_UserFormUri((uint)EN_MTC_USER_ID_TYPE.EN_MTC_USER_ID_USERNAME,userId) 视频尺寸:一共5个枚举值,具体枚举值请参考底层mtc_conf.h下的MtcConfPs枚举 图像矩形的具体方位和长宽:这是一个Json格式的Array对象表示这个图像的位置和大小,第一个值是图像左上角的x坐标(0~1) 第二个值是图像左上角的y坐标(0~1)。第三个值是图像的宽(0~1)。第四个值是图像的高(0~1)。比如[0.5,0.5,0.5,0.5]表示图像在右下角长宽是原始屏幕的一半 举例: [{"MtcConfUserUriKey":"[username:zhang@xxxx.cloud.justalk.com]","MtcConfPictureSizeKey":512,"MtcConfRectangleKey":[0.5,0.5,0.5,0.5]}] 表示成员zhang小尺寸的视频在屏幕右下角位置,长宽是原始屏幕的一半

参数
name指令名
param指令参数
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ SendMessage()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SendMessage ( string  type,
string  content,
string  toUserId 
)

发送消息,消息内容不能大于4K

指定成员会收到 OnMessageReceive 回调。

参数
type消息类型
content消息内容
userId指定成员的用户ID,传 null 即给频道中全部成员发送消息
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ SendVideoEmptyPack()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SendVideoEmptyPack ( bool  empty)

发送视频空包

该接口不会导致成员的 Video 属性变化,发送视频空包不代表停止发送视频流。

参数
empty视频发送包是否为空包
  • true: 发送视频空包
  • false: 发送正常视频包
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ SetConfig()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetConfig ( string  key,
string  value 
)

设置相关配置参数

参数
key参数关键字,目前该参数只支持JCMediaChannelConfigNotifyVolumeChange 关键字。
value参数值
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ SetCustomProperty()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetCustomProperty ( string  key,
string  value 
)

设置媒体频道中的自定义属性

参数
key自定义属性的value值
value自定义属性的key值
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ SetPictureLayout()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetPictureLayout ( JCPictureLayoutParams  layoutParams)

设置画中画布局

参数
layoutParams布局参数
返回
调用是否正常
  • true:正常执行调用
  • false:调用异常

◆ SetRatio()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetRatio ( float  ratio)

设置本端视频宽高比

将自己的视频采集根据宽高比裁剪后进行发送,通话中其他成员收到的画面将是裁剪后的比例。 该方法不影响其他成员的画面在本端的显示比例,也不影响其他成员相互之间的画面显示比例。 必须 加入频道后 设置才能生效,即收到 OnJoin 回调后设置才生效。

参数
ratio视频宽高比
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ SetScreenMode()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetScreenMode ( JRTCMergeModeParam  modeParam)

设置分屏模式

参数
modeParam媒体推流的视频合并模式参数
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ SetVideoCapture()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetVideoCapture ( string  path)

设置本地视频文件替代摄像头 目前支持视频文件格式有限制,仅支持mp4,avi格式,并且只支持视频编解码H264,和音频格式PCMA

参数
path视频文件路径
返回
接口调用是否正常
  • true:正常执行调用
  • false:调用异常

◆ SetVideoDot()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetVideoDot ( string  timespan,
string  info 
)

视频打点

参数
info打点信息
timespan时间戳
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ Stop()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.Stop ( )

解散频道

此频道内的成员都将被强制退出。

返回
接口调用结果
  • true: 接口调用成功
    • 空闲状态下,不会收到回调
    • 非空闲状态下,会收到 OnStop 回调
  • false: 接口调用异常

◆ UnRequestScreenVideo()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.UnRequestScreenVideo ( string  screenUri)

取消订阅频道中屏幕共享的视频流

返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ UnRequestVideo()

bool JRTCSDK.JCMediaChannel.JCMediaChannel.UnRequestVideo ( JCMediaChannelParticipant  participant)

取消订阅频道中其他成员的视频流

参数
participant成员对象
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ WatermarkSetLibPath()

void JRTCSDK.JCMediaChannel.JCMediaChannel.WatermarkSetLibPath ( string  path)

动态加载水印sdk

参数
path水印sdk绝对路径

◆ WatermarkSetPicture()

void JRTCSDK.JCMediaChannel.JCMediaChannel.WatermarkSetPicture ( string  pictureFile,
int  startTime,
int  endTime,
int  posX,
int  posY 
)

设置水印图片

参数
pictureFile图片路径
startTime水印开始时间
endTime水印结束时间
posX相对于基础位置的水平偏移
posY相对于基础位置的竖直偏移

◆ WatermarkSetState()

void JRTCSDK.JCMediaChannel.JCMediaChannel.WatermarkSetState ( bool  state)

设置水印状态

参数
state状态
  • 1=>open
  • 2=>close

◆ WatermarkSetText()

void JRTCSDK.JCMediaChannel.JCMediaChannel.WatermarkSetText ( string  text,
string  fontFile,
int  fontSize,
int  fontColor,
int  backColor,
bool  blod,
bool  italic,
bool  underline,
int  alignment 
)

设置水印文字

参数
text文字内容
fontFile字体文件路径,不可为空
fontSize字体大小,范围:6-50
fontColorRGB字体颜色,0xFFFFFF
backColorRGB背景颜色,0x000000
blod是否粗体
italic是否斜体
underline是否下划线
alignment字体排列位置
  • 0=>left
  • 1=>center
  • 2=>right

◆ WatermarkSetTimestamp()

void JRTCSDK.JCMediaChannel.JCMediaChannel.WatermarkSetTimestamp ( string  fontFile,
int  fontSize,
int  colorType,
int  borderWidth,
int  posType,
int  posX,
int  posY,
bool  tsIsMs 
)

设置水印时间戳

参数
fontFile字体文件路径
fontSize字体大小,范围6-50
colorType颜色类型,0=>red 1=>yellow 2=>green 3=>cyan 4=>blue 5=>magenta 6=>white 7=>neutral 8=>black
borderWidth边界宽度,范围0-5
posType时间戳位置类型,0=>topleft 1=>bottomleft 2=>topright 3=>bottomright 4=>center
posX相对初始位置的水平偏移
posY相对初始位置的竖直偏移
tsIsMs是否显示水印

属性说明

◆ CdnState

CdnState JRTCSDK.JCMediaChannel.JCMediaChannel.CdnState
getset

获得cdn推流状态,详见:

  • None : 无法进行Cdn推流。用户不在频道中或者加入频道时没有设置cdn推流参数。
  • Ready : 可以开启Cdn推流。用户在加入频道时设置了cdn推流参数,并且没有在推流。
  • Running : Cdn推流中。用户在加入频道时设置了cdn推流参数,并且正在cdn推流中。

◆ ChannelId

string JRTCSDK.JCMediaChannel.JCMediaChannel.ChannelId
getset

频道标识

◆ ChannelNumber

int JRTCSDK.JCMediaChannel.JCMediaChannel.ChannelNumber
getset

频道号,由服务器生成

◆ ChannelUri

string JRTCSDK.JCMediaChannel.JCMediaChannel.ChannelUri
getset

频道Uri

不管加入频道时使用的是不是 uri 模式,都能获取到频道 Uri。

◆ ConfId

long JRTCSDK.JCMediaChannel.JCMediaChannel.ConfId
get

获取本地频道标识

◆ DeliveryUri

string JRTCSDK.JCMediaChannel.JCMediaChannel.DeliveryUri
get

CD URI

◆ Mid

string JRTCSDK.JCMediaChannel.JCMediaChannel.Mid
get

获取频道唯一标识(服务器生成)

◆ Password

string JRTCSDK.JCMediaChannel.JCMediaChannel.Password
get

获取频道密码

◆ RecordState

RemoteRecordState JRTCSDK.JCMediaChannel.JCMediaChannel.RecordState
getset

获得远程视频录制状态,详见:

  • None : 无法进行视频录制。用户不在频道中或者加入频道时没有设置视频录制参数。
  • Ready : 可以开启视频录制。用户在加入频道时设置了录制参数,并且没有在录制视频。
  • Running : 视频录制中。用户在加入频道时设置了录制参数,并且正在视频录制中。

◆ ScreenRenderId

string JRTCSDK.JCMediaChannel.JCMediaChannel.ScreenRenderId
getset

屏幕共享时的视频流ID,无屏幕共享时为 null

调用 StartVideo 接口渲染通话中其他成员的屏幕共享画面时使用。

◆ ScreenUserId

string JRTCSDK.JCMediaChannel.JCMediaChannel.ScreenUserId
getset

发起屏幕共享者的用户ID,无屏幕共享时为 null

可用来判断当前通话中是否有成员发起屏幕共享。

◆ SelfParticipant

JCMediaChannelParticipant JRTCSDK.JCMediaChannel.JCMediaChannel.SelfParticipant
get

获取自身成员对象

◆ Title

string JRTCSDK.JCMediaChannel.JCMediaChannel.Title
getset

频道标题

◆ UploadLocalAudio

bool JRTCSDK.JCMediaChannel.JCMediaChannel.UploadLocalAudio
getset

是否上传本地音频数据

  • true: 上传中
  • false: 未上传

◆ UploadLocalVideo

bool JRTCSDK.JCMediaChannel.JCMediaChannel.UploadLocalVideo
getset

是否上传本地视频数据

  • true: 上传中
  • false: 未上传

该类的文档由以下文件生成: