JRTCSDK-Windows
v1.1
API文档
|
类似音视频房间的概念,可以通过频道号加入此频道,从而进行音视频通话 更多...
类 | |
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< JCMediaChannelParticipant > | GetParticipants () |
获取所有频道中的成员列表 更多... | |
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) |
事件上报回调 更多... | |
![]() | |
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] |
获取频道唯一标识(服务器生成) 更多... | |
类似音视频房间的概念,可以通过频道号加入此频道,从而进行音视频通话
bool JRTCSDK.JCMediaChannel.JCMediaChannel.ConfirmRecordFile | ( | bool | confirm | ) |
确认录制上传
confirm | 是否上传, true: 上传; false: 不上传 |
|
static |
创建 JCMediaChannel 对象
JCMediaChannel 的所有接口函数,如无特殊说明,都建议在主线程调用。
当需要创建多个 JCMediaChannel 对象时,可多次调用该方法。
调用此方法前确保 JCClient 已完成初始化,即 State 方法获取的状态值不等于 NotInit。
client | JCClient 对象 |
mediaDevice | JCMediaDevice 对象 |
callback | JCMediaChannelCallback 对象,用于实现 JCMediaChannelCallback 事件 |
|
static |
销毁 JCMediaChannel 对象
该方法为同步调用,需要等待 JCMediaChannel 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCMediaChannel 的其它方法和回调。
我们 不建议 在 JRTCSDK 的回调中调用此方法销毁 JCMediaChannel 对象,否则可能出现崩溃。
如需在销毁后再次创建 JCMediaChannel 实例,需要等待 Destroy 方法执行结束后再创建实例。
bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableAudioOutput | ( | bool | enable | ) |
开启/关闭音频输出
该方法可实现本地静音功能。关闭时听不到频道内其他成员的声音,不影响其他成员;开启时可以听到其他成员声音。 初始化 JCMediaChannel 时,音频输出功能默认是开启的。若要加入频道时听不见其他成员的声音,建议在调用 Join 加入频道前设置。
enable | 是否开启音频输出
|
bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableCDN | ( | bool | enable | ) |
开启/关闭CDN推流
enable | 开启/关闭CDN推流
|
bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableCdn | ( | bool | enable, |
int | keyInterval | ||
) |
开启/关闭CDN推流
enable | 开启/关闭CDN推流
|
keyInterval | 推流关键帧间隔(毫秒),当参数 enable 为 true 时有效,-1表示使用默认值(5000毫秒) |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableLocalRecord | ( | bool | enable, |
JRTCRecordLocalParam | recordParam | ||
) |
开启/关闭本地录制
enable | 开启或关闭本地录制
|
recordParam | 本地录制参数配置,当 enable == true 时,FilePath 必须设置,其余参数不设置则使用默认配置;当 enable == false 时,recordParam 可传 null |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableRemoteRecord | ( | bool | enable, |
JRTCRecordRemoteParam | recordParam | ||
) |
开启/关闭远程录制
可用过 RemoteRecordState 接口获取当前服务器录制状态。
enable | 开启或关闭远程录制
|
recordParam | 录制参数,,详见 JRTCRecordRemoteParam。当 enable == false 时,可传 null;当 enable == true 且按照默认配置进行录制可传 null |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableScreenOrWindowShare | ( | bool | enable, |
string | videoSource | ||
) |
开启/关闭屏幕共享
enable | 开启或关闭屏幕分享 |
videoSource | 屏幕共享视频源ID(窗口ID或屏幕ID) |
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 | 右边距 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableUploadAudioStream | ( | bool | enable | ) |
开启/关闭发送本地音频流
调用该方法可开启或关闭发送本地音频流。开启后,频道成员将听见本端声音;关闭后,频道成员将听不见本端声音。 频道中调用此方法不影响接收远端音频。 初始化 JCMediaChannel 时,默认不发送本地音频流。若要加入频道时,让频道内其他成员听见本端声音,需要在调用 Join 加入频道前设置。 该方法在频道内和频道外均可调用,且在离开频道后该设置仍然有效。也就是说这一次设置了开启发送本地音频流,那么在下一次加入频道时默认会开启发送本地音频流。 会议中也可调用此方法开启或关闭发送本地音频流,服务器会更新状态并同步给其他频道成员,即频道中所有成员都会收到 OnParticipantUpdate 回调。
enable | 开启/关闭本地音频流
|
bool JRTCSDK.JCMediaChannel.JCMediaChannel.EnableUploadVideoStream | ( | bool | enable | ) |
开启/关闭发送本地视频流
调用该方法可开启或关闭发送本地视频流。开启后,频道成员将看见本端画面;关闭后,频道成员将看不见本端画面。 频道中调用此方法不影响接收远端视频流。 初始化 JCMediaChannel 时,默认不发送本地视频流。若要加入频道时,让频道内其他成员看见本端画面,需要在调用 Join 加入频道前设置。 该方法在频道内和频道外均可调用,且在离开频道后该设置仍然有效。也就是说这一次设置了开启发送本地视频流,那么在下一次加入频道时默认会开启发送本地视频流。 会议中也可调用此方法开启或关闭发送本地视频流,服务器会更新状态并同步给其他频道成员,即频道中所有成员都会收到 OnParticipantUpdate 回调。
enable | 开启/关闭本地视频流
|
string JRTCSDK.JCMediaChannel.JCMediaChannel.GetConfig | ( | string | key | ) |
获取相关配置参数
key | 参数关键字,目前该参数只支持JCMediaChannelConfigNotifyVolumeChange 关键字。 |
string JRTCSDK.JCMediaChannel.JCMediaChannel.GetCustomProperty | ( | string | key | ) |
获取频道自定义属性
key | 属性 key |
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":"" }
int JRTCSDK.JCMediaChannel.JCMediaChannel.GetMicLevel | ( | ) |
当前麦克风音量级别,区间0-100,用以测试设备
String JRTCSDK.JCMediaChannel.JCMediaChannel.GetNetWorkjson | ( | ) |
获取网络状态json
JCMediaChannelParticipant JRTCSDK.JCMediaChannel.JCMediaChannel.GetParticipant | ( | string | userId | ) |
List<JCMediaChannelParticipant> JRTCSDK.JCMediaChannel.JCMediaChannel.GetParticipants | ( | ) |
获取所有频道中的成员列表
bool JRTCSDK.JCMediaChannel.JCMediaChannel.GetRecordPreviewInfo | ( | string | mid | ) |
获取视频预览链接
mid | 通话标识 |
int JRTCSDK.JCMediaChannel.JCMediaChannel.GetSpkLevel | ( | ) |
当前扬声器音量级别,区间0-100,用以测试设备
ConfState JRTCSDK.JCMediaChannel.JCMediaChannel.GetState | ( | ) |
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个空间层被订阅 } } } }
void JRTCSDK.JCMediaChannel.JCMediaChannel.GetUploadUrl | ( | string | fileId | ) |
获取文件上传路径
调用此接口,fileId 非必须指定时可传空字符串。 调用成功后,文件上传路径等具体信息可通过 OnGetUploadUrlResult 回调获取。 获取到文件上传路径等信息后,可通过 UploadFile 接口上传或续传文件至服务器。
fileId | 文件id,如果传空,则由服务器自动生成 |
int JRTCSDK.JCMediaChannel.JCMediaChannel.InviteSipUser | ( | JRTCSipInviteParam | sipParam | ) |
邀请Sip用户,一般用于对接落地网关等
sipParam | 邀请sip用户入会的配置参数,详见 JRTCSipInviteParam |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.Join | ( | string | channelIdOrUri, |
JCMediaChannelJoinParam | joinParam | ||
) |
加入频道
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话。 如果用户已在频道中,必须退出当前频道,即处于空闲状态,才能进入其他频道,否则将直接返回 false,且不会收到回调通知。
channelIdOrUri | 媒体频道标识或者频道Uri
|
joinParam | JCMediaChannelJoinParam频道参数,传 null 则使用默认配置 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.Leave | ( | ) |
离开频道
bool JRTCSDK.JCMediaChannel.JCMediaChannel.LocalRecording | ( | ) |
是否正在本地录制
void JRTCSDK.JCMediaChannel.JCMediaChannel.OnSDKEvent | ( | JRTCSDKEvent | sdkEvent | ) |
int JRTCSDK.JCMediaChannel.JCMediaChannel.Query | ( | string | channelId | ) |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.RequestScreenVideo | ( | string | screenUri, |
JRTCVideoSize | videoSize | ||
) |
订阅频道中屏幕共享的视频流
videoSize | 视频请求尺寸 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.RequestScreenVideo | ( | string | screenUri, |
PictureSize | pictureSize | ||
) |
订阅频道中屏幕共享的视频流
pictureSize | 视频请求的尺寸类型 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.RequestVideo | ( | JCMediaChannelParticipant | participant, |
JRTCVideoSize | videoSize | ||
) |
订阅频道中其他成员的视频流
participant | 成员对象 |
videoSize | 视频请求的尺寸 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.RequestVideo | ( | JCMediaChannelParticipant | participant, |
PictureSize | pictureSize | ||
) |
订阅频道中其他成员的视频流
当 requestSize 为 None 时表示取消订阅。
participant | 成员对象 |
pictureSize | 视频请求的尺寸类型 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SendAudioEmptyPack | ( | bool | empty | ) |
发送音频空包
该接口不会导致成员的 Audio 属性变化,发送音频空包不代表停止发送音频流。
empty | 音频发送包是否为空包
|
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 | 指令参数 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SendMessage | ( | string | type, |
string | content, | ||
string | toUserId | ||
) |
发送消息,消息内容不能大于4K
指定成员会收到 OnMessageReceive 回调。
type | 消息类型 |
content | 消息内容 |
userId | 指定成员的用户ID,传 null 即给频道中全部成员发送消息 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SendVideoEmptyPack | ( | bool | empty | ) |
发送视频空包
该接口不会导致成员的 Video 属性变化,发送视频空包不代表停止发送视频流。
empty | 视频发送包是否为空包
|
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetConfig | ( | string | key, |
string | value | ||
) |
设置相关配置参数
key | 参数关键字,目前该参数只支持JCMediaChannelConfigNotifyVolumeChange 关键字。 |
value | 参数值
|
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetCustomProperty | ( | string | key, |
string | value | ||
) |
设置媒体频道中的自定义属性
key | 自定义属性的value值 |
value | 自定义属性的key值 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetPictureLayout | ( | JCPictureLayoutParams | layoutParams | ) |
设置画中画布局
layoutParams | 布局参数 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetRatio | ( | float | ratio | ) |
设置本端视频宽高比
将自己的视频采集根据宽高比裁剪后进行发送,通话中其他成员收到的画面将是裁剪后的比例。 该方法不影响其他成员的画面在本端的显示比例,也不影响其他成员相互之间的画面显示比例。 必须 加入频道后 设置才能生效,即收到 OnJoin 回调后设置才生效。
ratio | 视频宽高比 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetScreenMode | ( | JRTCMergeModeParam | modeParam | ) |
设置分屏模式
modeParam | 媒体推流的视频合并模式参数 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetVideoCapture | ( | string | path | ) |
设置本地视频文件替代摄像头 目前支持视频文件格式有限制,仅支持mp4,avi格式,并且只支持视频编解码H264,和音频格式PCMA
path | 视频文件路径 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.SetVideoDot | ( | string | timespan, |
string | info | ||
) |
视频打点
info | 打点信息 |
timespan | 时间戳 |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.Stop | ( | ) |
bool JRTCSDK.JCMediaChannel.JCMediaChannel.UnRequestScreenVideo | ( | string | screenUri | ) |
取消订阅频道中屏幕共享的视频流
bool JRTCSDK.JCMediaChannel.JCMediaChannel.UnRequestVideo | ( | JCMediaChannelParticipant | participant | ) |
取消订阅频道中其他成员的视频流
participant | 成员对象 |
void JRTCSDK.JCMediaChannel.JCMediaChannel.WatermarkSetLibPath | ( | string | path | ) |
动态加载水印sdk
path | 水印sdk绝对路径 |
void JRTCSDK.JCMediaChannel.JCMediaChannel.WatermarkSetPicture | ( | string | pictureFile, |
int | startTime, | ||
int | endTime, | ||
int | posX, | ||
int | posY | ||
) |
设置水印图片
pictureFile | 图片路径 |
startTime | 水印开始时间 |
endTime | 水印结束时间 |
posX | 相对于基础位置的水平偏移 |
posY | 相对于基础位置的竖直偏移 |
void JRTCSDK.JCMediaChannel.JCMediaChannel.WatermarkSetState | ( | bool | state | ) |
设置水印状态
state | 状态
|
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 |
fontColor | RGB字体颜色,0xFFFFFF |
backColor | RGB背景颜色,0x000000 |
blod | 是否粗体 |
italic | 是否斜体 |
underline | 是否下划线 |
alignment | 字体排列位置
|
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 | 是否显示水印 |
|
getset |
|
getset |
频道标识
|
getset |
频道号,由服务器生成
|
getset |
频道Uri
不管加入频道时使用的是不是 uri 模式,都能获取到频道 Uri。
|
get |
获取本地频道标识
|
get |
CD URI
|
get |
获取频道唯一标识(服务器生成)
|
get |
获取频道密码
|
getset |
|
getset |
屏幕共享时的视频流ID,无屏幕共享时为 null
调用 StartVideo 接口渲染通话中其他成员的屏幕共享画面时使用。
|
getset |
发起屏幕共享者的用户ID,无屏幕共享时为 null
可用来判断当前通话中是否有成员发起屏幕共享。
|
get |
获取自身成员对象
|
getset |
频道标题
|
getset |
是否上传本地音频数据
|
getset |
是否上传本地视频数据