JCSDK-C#
| Public 成员函数 | 静态 Public 成员函数 | 属性 | 所有成员列表
JCSDK.JCMediaChannel.JCMediaChannel类 参考

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

class  JCPictureLayoutParams
 画中画录制布局参数 更多...
 
class  JCPictureLayoutPartParams
 画中画录制成员布局参数 更多...
 
class  JCRecordLocalParams
 本地录制参数 更多...
 
class  JCRecordRemoteParams
 录制其他参数 更多...
 
class  PropChangeParam
 会议成员属性变化 更多...
 

Public 成员函数

bool LocalRecording ()
 
void Destroy ()
 销毁 JCMediaChannel 对象
该方法为同步调用,需要等待 JCMediaChannel 实例资源释放后才能执行其他方法,调用此方法后,你将无法再使用 JCMediaChannel 的其他方法和回调 我们不建议在 JCSDK 的回调中调用此方法销毁 JCMediaChannel 对象,否则会引起崩溃 如需在销毁后再次创建 JCMediaChannel 实例,需要等待Destroy 方法执行结束后再创建实例 更多...
 
bool SetConfig (string key, string value)
 设置相关配置参数 key对应: 更多...
 
int InviteSipUser (string userId, string sipParam)
 邀请Sip用户 一般用于对接落地网关等 更多...
 
string GetConfig (string key)
 获取相关配置参数 key对应: 更多...
 
JCMediaChannelState GetState ()
 获取当前在频道中的状态 更多...
 
int Query (string channelId)
 查询频道相关信息,例如是否存在、人数等
更多...
 
bool Join (string channelIdOrUri, JCMediaChannelJoinParam joinParam)
 加入频道 用户登录成功后可以通过此方法加入通话频道,在同一个频道内的用户可以互相通话
如果已在频道中,用户须退出当前频道,才能进入下一个频道 更多...
 
bool SetPictureLayout (JCPictureLayoutParams layoutParams)
 设置画中画布局 更多...
 
bool EnableLocalRecord (bool enable, JCRecordLocalParams 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 RequestVideo (JCMediaChannelParticipant participant, JCMediaChannelPictureSize pictureSize)
 请求频道中的其他用户视频流 当pictureSize为None表示关闭请求 更多...
 
bool EnableScreenOrWindowShare (bool enable, string videoSource)
 开启关闭桌面屏幕共享,内部根据当前状态决定是否开启 更多...
 
bool RequestScreenVideo (string screenUri, JCMediaChannelPictureSize pictureSize)
 请求屏幕共享的视频流 当pictureSize未None表示关闭请求 更多...
 
bool EnableCdn (bool enable, int keyInterval)
 开关Cdn推流,内部根据当前状态决定是否开启 更多...
 
bool EnableRemoteRecord (bool enable, JCRecordRemoteParams recordParam)
 开关远程视频录制,内部根据当前状态决定是否开启 更多...
 
JCMediaChannelParticipant GetParticipant (string userId)
 根据用户标识获取频道内成员 更多...
 
List< JCMediaChannelParticipantGetParticipants ()
 获取所有频道中的成员列表 更多...
 
bool SendMessage (string type, string content, string toUserId)
 频道中发送消息,当 toUserId 不为 null 时,content 不能大于 4k 更多...
 
string GetStatistics ()
 获取统计信息,以Json字符串形式返回,其中包含 "Config", "Network","Transport" 和 "Participants" 4个节点 以Json字符串形式返回,其中包含 "Config"、"Network"、"Transport"、"Participants" 4个键值,示例如下: { "Config": "Video Config: SRTP: off
Codec: H264-SVC
Payload: 125
Bitrate: 1000
Framerate: 24
Resolution: 640x352
FEC: on|124|123
FIR: off
Key Interval: 0
Repeat: 0
NACK: off
RTX: off
TMMBR: off
RPSI: off
Small NALU: on
ARS: off
BR Min: 10
BR Max: 2000
FR Min: 1
FR Max: 30
Res. Ctrl: off
Res. Mode: 0
Fr Ctrl: off
CPU Load Ctrl: off
Target: 80
Bw Efficient: off
Error Conceal: off
Enhance color: off
Boost bright: off
Boost contrast: off
RTP Ext: CVO
Render Name: N\/A
", "Network": "Server(-176574541330799): 4466(1): BWE(4592|1231) IN(A:0;) ", "Transport": "Local: 100.306884891:44795 Remote: 120:14243 LastPaths: 120,120 Path: 120 [tcp] Step1:Delay\/Loss(S\/R): 55\/0\/0 Cost: 65** (best: 40) Path: 151 [udp] Step1:Delay\/Loss(S\/R): 43\/0\/0 Cost: 132 Path: 105 [tcp] Step1:Delay\/Loss(S\/R): 55\/0\/0 Cost: 142 Path: 100 [tcp] Step1:Delay\/Loss(S\/R): 43\/0\/0 Cost: 144", "Participants": [{ "4466": "Video Sending Stats: Packets: 0
Capture Fr: 24
FPS\/IDR: 0\/0
Resolution: 640x352[0|0|0]
Bitrate\/Setrate:0\/1000
QP: 0
FecPrecent: 20 Be Subscribed Stats: Audio: true Video: [0|0|0|0] Screen: [0|0|0|0] " }] } 更多...
 
bool SetCustomProperty (string key, string value)
 调用此接口来设置频道自定义属性 更多...
 
string GetCustomProperty (string key)
 获取频道自定义属性 更多...
 
bool SendCommand (string name, string param)
 发送频道指令 更多...
 
bool SetRatio (float ratio)
 设置比率 更多...
 
bool SetScreenMode (JCConfMergeModeParam modeParam)
 设置视频合并模式 更多...
 
int GetSpkLevel ()
 获取扬声器音量 更多...
 
int GetMicLevel ()
 获取麦克风音量 更多...
 
int GenerateRoomId ()
 获取会议号 更多...
 
bool SendVideoEmptyPack (bool empty)
 视频发送空包,该接口不会导致成员的Video属性变化 更多...
 
bool SendAudioEmptyPack (bool empty)
 音频发送空包,该接口不会导致成员的音频属性变化 更多...
 
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 更多...
 

静态 Public 成员函数

static JCMediaChannel Create (JCClient.JCClient client, JCMediaDevice.JCMediaDevice mediaDevice, JCMediaChannelCallback callback)
 创建JCMediaChannel对象 JCMediaChannel 的所有接口函数,如无特殊说明,都建议在主线程调用 更多...
 

属性

string ChannelId [get, set]
 
string ChannelUri [get, set]
 
int ChannelNumber [get, set]
 
bool UploadLocalAudio [get, set]
 
bool UploadLocalVideo [get, set]
 
string Title [get, set]
 
string ScreenRenderId [get, set]
 
string ScreenUserId [get, set]
 
JCMediaChannelRecordState RecordState [get, set]
 
JCMediaChannelCdnState CdnState [get, set]
 
JCMediaChannelParticipant SelfParticipant [get]
 
string Password [get]
 
string DeliveryUri [get]
 
long ConfId [get]
 

详细描述

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

成员函数说明

◆ Create()

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

创建JCMediaChannel对象 JCMediaChannel 的所有接口函数,如无特殊说明,都建议在主线程调用

参数
clientJCClient 对象
mediaDeviceJCMediaDevice 对象
callbackJCMediaChannelCallback 对象,用于接收JCMediaDevice通知
返回
JCMediaChannel对象

JCClient、JCMediaDevice、JCMediaChannelCallback 任意参数为空就会抛出异常

◆ Destroy()

void JCSDK.JCMediaChannel.JCMediaChannel.Destroy ( )

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

◆ EnableAudioOutput()

bool JCSDK.JCMediaChannel.JCMediaChannel.EnableAudioOutput ( bool  enable)

开启关闭音频输出
该方法可实现本地静音功能。关闭时听不到频道内其他成员的声音,不影响其他成员;开启时可以听到其他成员声音

初始化 JCMediaChannel 时,默认设置开启音频输出功能。如果想要在加入频道的时候听不见其他成员的声音,可以在调用 Join 加入频道前设置
该方法可以关闭或重新开启音频输出功能,在频道内和频道外均可调用,且在离开频道后仍然有效,也就是说这一次设置了关闭音频输出,那么下一次加入频道时也是默认关闭音频输出


参数
enable是否开启音频输出
  • true:开启音频输出
  • false:关闭音频输出
返回
调用是否正常
  • true:表示调用成功,存在以下两种场景:
    • 若在调用此方法时,用户不在频道中,则不会收到回调通知
    • 若在调用此方法时,用户在频道中,则会收到 OnMediaChannelPropertyChange 通知
  • false:表示调用失败

◆ EnableCDN()

bool JCSDK.JCMediaChannel.JCMediaChannel.EnableCDN ( bool  enable)

打开关闭CDN推流

参数
enable是否打开Cdn推流
  • true:打开Cdn推流
  • false:关闭Cdn推流
返回
调用是否正常
  • true:表示正常执行调用流程
  • false:表示调用异常

◆ EnableCdn()

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

开关Cdn推流,内部根据当前状态决定是否开启

在收到onMediaChannelPropertyChange 回调时检查cdnState

参数
enable是否开启cdn推流
  • true:开启cdn推流
  • false:关闭cdn推流
keyInterval推流关键帧间隔(毫秒),当 enable 为 true 时有效,-1表示使用默认值(5000毫秒)
返回
调用是否正常
  • true:表示调用成功
  • false:表示调用失败

◆ EnableLocalRecord()

bool JCSDK.JCMediaChannel.JCMediaChannel.EnableLocalRecord ( bool  enable,
JCRecordLocalParams  recordParam 
)

开关本地会议录制

参数
enable开启或者关闭录制
  • true:开启本地录制
  • false:关闭本地录制
recordParam录制参数
返回
调用是否正常
  • true:表示正常执行调用流程
  • false:表示调用异常

◆ EnableRemoteRecord()

bool JCSDK.JCMediaChannel.JCMediaChannel.EnableRemoteRecord ( bool  enable,
JCRecordRemoteParams  recordParam 
)

开关远程视频录制,内部根据当前状态决定是否开启

参数
enable是否开启屏幕录制
  • true:开启远程录制
  • false:关闭远程录制
recordParamrecordParam 录制参数,当 enable 为 true 时,可以更改由 join 时传入的录制参数,不需更改则填 null
返回
调用是否正常
  • true:表示调用成功
  • false:表示调用失败

◆ EnableScreenOrWindowShare()

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

开启关闭桌面屏幕共享,内部根据当前状态决定是否开启

参数
enable是否开启屏幕共享
  • true:开启屏幕共享
  • false:关闭屏幕共享
videoSource桌面或窗口id
返回
调用是否正常
  • true:表示调用成功
  • false:表示调用失败

◆ EnableUploadAudioStream()

bool JCSDK.JCMediaChannel.JCMediaChannel.EnableUploadAudioStream ( bool  enable)

开启关闭发送本地音频流

调用该方法可开启或关闭发送本地音频流。开启后,频道成员将听见本端声音;关闭后,频道成员将听不见本端声音

初始化 JCMediaChannel 时,默认设置关闭本地音频流。如果想要在加入频道的时候就让频道内其他成员听见本端声音,可以在调用 Join 加入频道前设置
该方法在频道内和频道外均可调用,且在离开频道后该设置仍然有效。也就是说这一次设置了开启发送本地音频流,那么在下一次加入频道时默认会开启发送本地音频流
频道中也可调用此方法开启或关闭发送本地音频流,服务器会更新状态并同步给其他频道成员
频道中调用此方法不影响接收远端音频
1.在频道中将会与服务器进行交互,服务器会更新状态并同步给其他用户
2.未在频道中则标记是否上传音频流,在Join时生效
2.建议每次Join前设置

参数
enable开启/关闭本地音频流
  • true:开启发送本地音频流
  • false:关闭发送本地音频流
返回
调用是否正常
  • true:表示调用成功,存在以下两种场景:
    • 若在调用此方法时,用户不在频道中,则不会收到回调通知
    • 若在调用此方法时,用户在频道中,则会收到 OnMediaChannelPropertyChange 通知
  • false:表示调用失败

◆ EnableUploadVideoStream()

bool JCSDK.JCMediaChannel.JCMediaChannel.EnableUploadVideoStream ( bool  enable)

开启关闭发送本地视频流
调用该方法可开启或关闭发送本地视频流。开启后,频道成员将可以看见本端视频画面;关闭后,频道成员将看不见本端视频画面

初始化 JCMediaChannel 时,默认设置发送本地视频流。如果想要在加入频道的时候就让频道内其他成员看见本端视频画面,可以在调用 Join 加入频道前设置
该方法在频道内和频道外均可调用,且在离开频道后该设置仍然有效。也就是说这一次设置了关闭发送本地视频流,那么在下一次加入频道时默认会关闭发送本地音频流
频道中也可调用此方法开启或关闭发送本地视频流,服务器会更新状态并同步给其他频道成员
频道中调用此方法不影响接收远端视频
1.在频道中将会与服务器进行交互,服务器会更新状态并同步给其他用户
2.未在频道中则标记是否上传视频流,在Join时生效
2.建议每次Join前设置

参数
enable开启/关闭本地视频流
  • true:开启发送本地视频流
  • false:关闭发送本地视频流
返回
调用是否正常
  • true:表示调用成功,存在以下两种场景:
    • 若在调用此方法时,用户不在频道中,则不会收到回调通知
    • 若在调用此方法时,用户在频道中,则会收到 OnMediaChannelPropertyChange 通知
  • false:表示调用失败

◆ GenerateRoomId()

int JCSDK.JCMediaChannel.JCMediaChannel.GenerateRoomId ( )

获取会议号

返回
操作id

◆ GetConfig()

string JCSDK.JCMediaChannel.JCMediaChannel.GetConfig ( string  key)

获取相关配置参数 key对应:

参数
key参数关键字,参见 JCMediaChannelConstants
返回
获取是否成功
  • true:返回字符串类型具体值
  • false:返回null

◆ GetCustomProperty()

string JCSDK.JCMediaChannel.JCMediaChannel.GetCustomProperty ( string  key)

获取频道自定义属性

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

◆ GetMicLevel()

int JCSDK.JCMediaChannel.JCMediaChannel.GetMicLevel ( )

获取麦克风音量

返回
麦克风音量大小

◆ GetNetWorkjson()

String JCSDK.JCMediaChannel.JCMediaChannel.GetNetWorkjson ( )

获取网络状态json

返回

◆ GetParticipant()

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

根据用户标识获取频道内成员

参数
userId用户唯一标识
返回
频道成员对象

◆ GetParticipants()

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

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

返回
返回成员对象列表

◆ GetSpkLevel()

int JCSDK.JCMediaChannel.JCMediaChannel.GetSpkLevel ( )

获取扬声器音量

返回
扬声器音量大小

◆ GetState()

JCMediaChannelState JCSDK.JCMediaChannel.JCMediaChannel.GetState ( )

获取当前在频道中的状态

返回
返回媒体通道状态

◆ GetStatistics()

string JCSDK.JCMediaChannel.JCMediaChannel.GetStatistics ( )

获取统计信息,以Json字符串形式返回,其中包含 "Config", "Network","Transport" 和 "Participants" 4个节点 以Json字符串形式返回,其中包含 "Config"、"Network"、"Transport"、"Participants" 4个键值,示例如下: { "Config": "Video Config: SRTP: off
Codec: H264-SVC
Payload: 125
Bitrate: 1000
Framerate: 24
Resolution: 640x352
FEC: on|124|123
FIR: off
Key Interval: 0
Repeat: 0
NACK: off
RTX: off
TMMBR: off
RPSI: off
Small NALU: on
ARS: off
BR Min: 10
BR Max: 2000
FR Min: 1
FR Max: 30
Res. Ctrl: off
Res. Mode: 0
Fr Ctrl: off
CPU Load Ctrl: off
Target: 80
Bw Efficient: off
Error Conceal: off
Enhance color: off
Boost bright: off
Boost contrast: off
RTP Ext: CVO
Render Name: N\/A
", "Network": "Server(-176574541330799): 4466(1): BWE(4592|1231) IN(A:0;) ", "Transport": "Local: 100.306884891:44795 Remote: 120:14243 LastPaths: 120,120 Path: 120 [tcp] Step1:Delay\/Loss(S\/R): 55\/0\/0 Cost: 65** (best: 40) Path: 151 [udp] Step1:Delay\/Loss(S\/R): 43\/0\/0 Cost: 132 Path: 105 [tcp] Step1:Delay\/Loss(S\/R): 55\/0\/0 Cost: 142 Path: 100 [tcp] Step1:Delay\/Loss(S\/R): 43\/0\/0 Cost: 144", "Participants": [{ "4466": "Video Sending Stats: Packets: 0
Capture Fr: 24
FPS\/IDR: 0\/0
Resolution: 640x352[0|0|0]
Bitrate\/Setrate:0\/1000
QP: 0
FecPrecent: 20 Be Subscribed Stats: Audio: true Video: [0|0|0|0] Screen: [0|0|0|0] " }] }

返回
返回统计信息字符串

◆ InviteSipUser()

int JCSDK.JCMediaChannel.JCMediaChannel.InviteSipUser ( string  userId,
string  sipParam 
)

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

参数
userId一般为号码
sipParamnil 或者通过JCMediaChannelUtils.buildSipParam构造
返回
调用是否正常

◆ Join()

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

加入频道 用户登录成功后可以通过此方法加入通话频道,在同一个频道内的用户可以互相通话
如果已在频道中,用户须退出当前频道,才能进入下一个频道

加入结果通过 OnJoin 方法通知

参数
channelIdOrUri媒体频道标识或者频道Uri,当 joinParam 中的 UriMode 设置为 true 时表示频道 Uri,其他表示频道标识
joinParam会议参数 没有则填 null
返回
调用是否正常
  • true:表示正常执行调用流程
  • false:表示调用异常,存在以下场景:
    • 若在调用此方法时,用户的频道状态不是空闲状态,则不会收到回调通知
    • 若在调用此方法时,用户的频道状态是空闲状态,则会收到 OnJoin 方法通知

JCMediaChannelJoinParam

◆ Leave()

bool JCSDK.JCMediaChannel.JCMediaChannel.Leave ( )

离开频道 当前只支持同时加入一个频道

结果通过 OnLeave 通知

返回
离开频道的调用是否正常
  • true:表示调用成功
  • false:表示调用失败

◆ LocalRecording()

bool JCSDK.JCMediaChannel.JCMediaChannel.LocalRecording ( )

本地录制

◆ Query()

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

查询频道相关信息,例如是否存在、人数等

结果通过 OnQuery 通知

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

◆ RequestScreenVideo()

bool JCSDK.JCMediaChannel.JCMediaChannel.RequestScreenVideo ( string  screenUri,
JCMediaChannelPictureSize  pictureSize 
)

请求屏幕共享的视频流 当pictureSize未None表示关闭请求

参数
screenUri屏幕分享uri
pictureSize视频请求尺寸类型
返回
调用是否正常
  • true:表示正常执行调用流程
  • false:表示调用异常

◆ RequestVideo()

bool JCSDK.JCMediaChannel.JCMediaChannel.RequestVideo ( JCMediaChannelParticipant  participant,
JCMediaChannelPictureSize  pictureSize 
)

请求频道中的其他用户视频流 当pictureSize为None表示关闭请求

调用成功后会收到 OnParticipantUpdate 通知

参数
participantJCMediaChannelParticipant 频道中其他成员对象
pictureSize视频请求的尺寸类型
返回
调用是否正常
  • true:表示调用成功
  • false:表示调用失败,不会收到回调通知

◆ SendAudioEmptyPack()

bool JCSDK.JCMediaChannel.JCMediaChannel.SendAudioEmptyPack ( bool  empty)

音频发送空包,该接口不会导致成员的音频属性变化

参数
empty发送音频包
  • true:发送空包
  • false:发送正常音频包
返回
是否发送成功
  • true:发送成功
  • false:发送失败

◆ SendCommand()

bool JCSDK.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 JCSDK.JCMediaChannel.JCMediaChannel.SendMessage ( string  type,
string  content,
string  toUserId 
)

频道中发送消息,当 toUserId 不为 null 时,content 不能大于 4k

此接口调用成功后,消息接收方会收到 OnMessageReceive 回调,通过此回调可以获取消息的文本类型和文本内容

参数
type消息类型
content消息内容
toUserId接收方成员的userid,值为null发送给所有人
返回
是否发送成功
  • true:消息发送成功
  • false:消息发送失败

◆ SendVideoEmptyPack()

bool JCSDK.JCMediaChannel.JCMediaChannel.SendVideoEmptyPack ( bool  empty)

视频发送空包,该接口不会导致成员的Video属性变化

参数
empty发送视频包
  • true:发送空包
  • false:正常发送视频包
返回
是否发送成功
  • true:发送成功
  • false:发送失败

◆ SetConfig()

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

设置相关配置参数 key对应:

参数
key参数关键字,见 JCMediaChannelConstants
value参数值
返回
设置是否正常
  • true:表示设置成功
  • false:表示设置失败

◆ SetCustomProperty()

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

调用此接口来设置频道自定义属性

参数
key属性 key
value属性值
返回
调用是否正常
  • true:表示调用成功
  • false:表示调用失败

◆ SetPictureLayout()

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

设置画中画布局

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

◆ SetRatio()

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

设置比率

参数
ratio比率大小
返回
是否调用成功
  • true:调用成功
  • false:调用失败

◆ SetScreenMode()

bool JCSDK.JCMediaChannel.JCMediaChannel.SetScreenMode ( JCConfMergeModeParam  modeParam)

设置视频合并模式

参数
modeParam设置媒体推流的视频合并模式参数
返回
调用是否正常
  • true:正常执行调用
  • false:调用异常

◆ SetVideoCapture()

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

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

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

◆ Stop()

bool JCSDK.JCMediaChannel.JCMediaChannel.Stop ( )

结束频道,所有成员都将被退出
接口调用成功后,此频道内的成员都将被强制退出

调用成功后,自己会收到 OnStop 通知,其他成员会收到 OnLeave 通知

返回
调用是否正常
  • true:表示调用成功,存在以下两种场景:
    • 若在调用此方法时,用户的频道状态是空闲状态,则不会收到回调通知
    • 若在调用此方法时,用户的频道状态不是空闲状态,则会收到 OnStop 通知
  • false:表示调用失败

◆ WatermarkSetLibPath()

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

动态加载水印sdk

参数
path水印sdk绝对路径

◆ WatermarkSetPicture()

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

设置水印图片

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

◆ WatermarkSetState()

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

设置水印状态

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

◆ WatermarkSetText()

void JCSDK.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 JCSDK.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

JCMediaChannelCdnState JCSDK.JCMediaChannel.JCMediaChannel.CdnState
getset

cdn推流状态

◆ ChannelId

string JCSDK.JCMediaChannel.JCMediaChannel.ChannelId
getset

频道标识

◆ ChannelNumber

int JCSDK.JCMediaChannel.JCMediaChannel.ChannelNumber
getset

八位创建会议时生成的频道号(用于webAgent加入会议)

◆ ChannelUri

string JCSDK.JCMediaChannel.JCMediaChannel.ChannelUri
getset

频道Uri

◆ ConfId

long JCSDK.JCMediaChannel.JCMediaChannel.ConfId
get

会议id

◆ DeliveryUri

string JCSDK.JCMediaChannel.JCMediaChannel.DeliveryUri
get

CD URI

◆ Password

string JCSDK.JCMediaChannel.JCMediaChannel.Password
get

获取密码

◆ RecordState

JCMediaChannelRecordState JCSDK.JCMediaChannel.JCMediaChannel.RecordState
getset

视频录制状态

◆ ScreenRenderId

string JCSDK.JCMediaChannel.JCMediaChannel.ScreenRenderId
getset

屏幕共享渲染标识

◆ ScreenUserId

string JCSDK.JCMediaChannel.JCMediaChannel.ScreenUserId
getset

屏幕共享的用户标识

◆ SelfParticipant

JCMediaChannelParticipant JCSDK.JCMediaChannel.JCMediaChannel.SelfParticipant
get

获取本地成员

◆ Title

string JCSDK.JCMediaChannel.JCMediaChannel.Title
getset

频道标题(可以通过指令更改)

◆ UploadLocalAudio

bool JCSDK.JCMediaChannel.JCMediaChannel.UploadLocalAudio
getset

本地是否上传音频流

◆ UploadLocalVideo

bool JCSDK.JCMediaChannel.JCMediaChannel.UploadLocalVideo
getset

本地是否上传视频流


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