被 com.juphoon.cloud.JCMediaChannelImpl 继承.

class  JoinParam
 
class  PropChangeParam
 
class  RecordParam
 
class  ScreenShareParam
 
class  SipParam
 

Public 成员函数

abstract String getChannelUri ()
 
abstract String getChannelId ()
 
abstract String getSessionId ()
 
abstract String getPassword ()
 
abstract int getChannelNumber ()
 
abstract String getTitle ()
 
abstract int getState ()
 
abstract List< JCMediaChannelParticipantgetParticipants ()
 
abstract boolean getUploadLocalAudio ()
 
abstract boolean getUploadLocalVideo ()
 
abstract boolean getAudioOutput ()
 
abstract String getScreenRenderId ()
 
abstract String getScreenUserId ()
 
abstract int getRecordState ()
 
abstract int getCdnState ()
 
abstract int query (String channelId)
 
abstract boolean join (String channelId, JoinParam joinParam)
 
abstract boolean leave ()
 
abstract boolean stop ()
 
abstract boolean enableUploadAudioStream (boolean enable)
 
abstract boolean enableUploadVideoStream (boolean enable)
 
abstract boolean enableAudioOutput (boolean enable)
 
abstract boolean requestVideo (JCMediaChannelParticipant participant, @PictureSize int pictureSize)
 
abstract boolean requestScreenVideo (String screenUri, @PictureSize int pictureSize)
 
abstract boolean enableCdn (boolean enable, int keyInterval)
 
abstract boolean enableRecord (boolean enable, RecordParam recordParam)
 
abstract boolean enableScreenShare (boolean enable, ScreenShareParam screenShareParam)
 
abstract JCMediaChannelParticipant getParticipant (String userId)
 
abstract String getStatistics ()
 
abstract boolean setCustomProperty (String property)
 
abstract String getCustomProperty ()
 
abstract boolean sendMessage (String type, String content, String toUserId)
 
abstract boolean sendCommand (String name, String param)
 
abstract int inviteSipUser (String userId, SipParam sipParam)
 
abstract void setCustomRole (@CustomRole int customRole, JCMediaChannelParticipant participant)
 
abstract int getCustomRole ()
 
abstract void setCustomState (@CustomState int customState, JCMediaChannelParticipant participant)
 
abstract int getCustomState ()
 
abstract boolean kick (JCMediaChannelParticipant participant)
 
abstract boolean sendCommandToDelivery (String command)
 
abstract void enableSelfVideoRatio (boolean enable, float ratio)
 
abstract JCMediaDeviceVideoCanvas startScreenShareVideo (@JCMediaDevice.RenderType int renderType, @PictureSize int pictureSize)
 
abstract void stopScreenShareVideo ()
 
abstract JCMediaChannelParticipant getSelfParticipant ()
 
abstract int getMaxResolution ()
 
abstract boolean subscribeParticipantAudio (JCMediaChannelParticipant participant, boolean subscribe)
 

静态 Public 成员函数

static JCMediaChannel create (JCClient client, JCMediaDevice mediaDevice, JCMediaChannelCallback callback)
 
static void destroy ()
 

Public 属性

boolean volumeChangeNotify = false
 

静态 Public 属性

static final int REASON_NONE = 0
 
static final int REASON_NOT_LOGIN = 1
 
static final int REASON_TIMEOUT = 2
 
static final int REASON_NETWORK = 3
 
static final int REASON_CALL_FUNCTION_ERROR = 4
 
static final int REASON_ALREADY_JOINED = 5
 
static final int REASON_KICKED = 6
 
static final int REASON_OFFLINE = 7
 
static final int REASON_QUIT = 8
 
static final int REASON_OVER = 9
 
static final int REASON_FULL = 10
 
static final int REASON_INVALID_PASSWORD = 11
 
static final int REASON_INTERNAL_ERROR = 12
 
static final int REASON_SERVER_ERROR = 13
 
static final int REASON_INVALID_PARAM = 14
 
static final int REASON_OTHER = 100
 
static final int PICTURESIZE_NONE = 0
 
static final int PICTURESIZE_MIN = 1
 
static final int PICTURESIZE_SMALL = 2
 
static final int PICTURESIZE_LARGE = 3
 
static final int PICTURESIZE_MAX = 4
 
static final int STATE_IDLE = 0
 
static final int STATE_JOINING = 1
 
static final int STATE_JOINED = 2
 
static final int STATE_LEAVING = 3
 
static final int PARTICIPANT_TYPE_NORMAL = 0
 
static final int PARTICIPANT_TYPE_PSTN = 1
 
static final int PARTICIPANT_TYPE_WEBRTC = 2
 
static final int PARTICIPANT_TYPE_IRC = 3
 
static final int VOLUME_STATUS_ZERO = 0
 
static final int VOLUME_STATUS_LOW = 1
 
static final int VOLUME_STATUS_MID = 2
 
static final int VOLUME_STATUS_HIGH = 3
 
static final int VOLUME_STATUS_TOO_HIGH = 4
 
static final int NET_STATUS_DISCONNECTED = 0
 
static final int NET_STATUS_VERY_BAD = 1
 
static final int NET_STATUS_BAD = 2
 
static final int NET_STATUS_NORMAL = 3
 
static final int NET_STATUS_GOOD = 4
 
static final int NET_STATUS_VERY_GOOD = 5
 
static final int RECORD_STATE_NONE = 0
 
static final int RECORD_STATE_READY = 1
 
static final int RECORD_STATE_RUNNING = 2
 
static final int CDN_STATE_NONE = 0
 
static final int CDN_STATE_READY = 1
 
static final int CDN_STATE_RUNNING = 2
 
static final int MAX_RESOLUTION_360p = 0
 
static final int MAX_RESOLUTION_720p = 1
 
static final int MAX_RESOLUTION_1080p = 2
 
static final int CUSTOM_ROLE_NONE = 0
 
static final int CUSTOM_ROLE_0 = 1<<12
 
static final int CUSTOM_ROLE_1 = 1<<13
 
static final int CUSTOM_ROLE_2 = 1<<14
 
static final int CUSTOM_ROLE_3 = 1<<15
 
static final int CUSTOM_STATE_NONE = 0
 
static final int CUSTOM_STATE_0 = 1<<12
 
static final int CUSTOM_STATE_1 = 1<<13
 
static final int CUSTOM_STATE_2 = 1<<14
 
static final int CUSTOM_STATE_3 = 1<<15
 

详细描述

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

成员函数说明

◆ create()

static JCMediaChannel com.juphoon.cloud.JCMediaChannel.create ( JCClient  client,
JCMediaDevice  mediaDevice,
JCMediaChannelCallback  callback 
)
inlinestatic

创建 JCMediaChannel 对象

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

注解
参数
clientJCClient 对象
mediaDeviceJCMediaDevice 对象
callbackJCMediaChannelCallback 对象,用于回调相关通知
返回
JCMediaChannel 对象
异常
JCClient、JCMediaDevice、JCMediaChannelCallback 任意参数为空就会抛出异常

◆ destroy()

static void com.juphoon.cloud.JCMediaChannel.destroy ( )
inlinestatic

销毁 JCMediaChannel 对象

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

◆ getChannelUri()

abstract String com.juphoon.cloud.JCMediaChannel.getChannelUri ( )
abstract

获得频道 Uri

注解
该接口需要在自己加入会议成功后才能调用

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

返回
频道 Uri

◆ getChannelId()

abstract String com.juphoon.cloud.JCMediaChannel.getChannelId ( )
abstract

获得频道标识

注解
该接口需要在自己加入会议成功后才能调用
返回
频道标识

◆ getSessionId()

abstract String com.juphoon.cloud.JCMediaChannel.getSessionId ( )
abstract

获取服务器唯一频道ID

注解
该接口需要在自己加入会议成功后才能调用
返回
频道ID

◆ getPassword()

abstract String com.juphoon.cloud.JCMediaChannel.getPassword ( )
abstract

获得频道密码

注解
该接口需要在自己加入会议成功后才能调用
返回
频道密码

◆ getChannelNumber()

abstract int com.juphoon.cloud.JCMediaChannel.getChannelNumber ( )
abstract

获得频道号

注解
该接口需要在自己加入会议成功后才能调用
返回
频道号

◆ getTitle()

abstract String com.juphoon.cloud.JCMediaChannel.getTitle ( )
abstract

返回频道标题

注解
该接口需要在自己加入会议成功后才能调用
返回
频道标题

◆ getState()

abstract int com.juphoon.cloud.JCMediaChannel.getState ( )
abstract

返回自己的频道状态

注解
该接口需要在自己加入会议成功后才能调用
返回
自己的频道状态:

◆ getParticipants()

abstract List< JCMediaChannelParticipant > com.juphoon.cloud.JCMediaChannel.getParticipants ( )
abstract

获得频道中的所有成员

注解
该接口需要在自己加入会议成功后才能调用
返回
频道成员列表

◆ getUploadLocalAudio()

abstract boolean com.juphoon.cloud.JCMediaChannel.getUploadLocalAudio ( )
abstract

获取本地音频数据是否在上传

注解
该接口需要在自己加入会议成功后才能调用
返回
是否在上传本地音频数据
  • true: 上传中
  • false: 未上传

◆ getUploadLocalVideo()

abstract boolean com.juphoon.cloud.JCMediaChannel.getUploadLocalVideo ( )
abstract

获取本地视频数据是否在上传

注解
该接口需要在自己加入会议成功后才能调用
返回
是否在上传本地视频数据
  • true: 上传中
  • false: 未上传

◆ getAudioOutput()

abstract boolean com.juphoon.cloud.JCMediaChannel.getAudioOutput ( )
abstract

获取音频是否输出

注解
该接口需要在自己加入会议成功后才能调用

本地没有音频输出的话,就听不到频道内其他成员的声音了

返回
是否有音频输出
  • true: 输出中
  • false: 未输出

◆ getScreenRenderId()

abstract String com.juphoon.cloud.JCMediaChannel.getScreenRenderId ( )
abstract

获取屏幕共享渲染标识

注解
该接口需要在自己加入会议成功后才能调用
返回
屏幕共享渲染标识,频道中没有屏幕共享则返回null

◆ getScreenUserId()

abstract String com.juphoon.cloud.JCMediaChannel.getScreenUserId ( )
abstract

获取开启屏幕共享的用户标识

注解
该接口需要在自己加入会议成功后才能调用
返回
开启屏幕共享的用户标识,没有屏幕共享则为null

◆ getRecordState()

abstract int com.juphoon.cloud.JCMediaChannel.getRecordState ( )
abstract

获取视频录制状态

注解
该接口需要在自己加入会议成功后才能调用
返回
视频录制状态,参见:
  • RECORD_STATE_NONE : 无法进行视频录制。用户不在频道中或者加入频道时没有设置视频录制参数
  • RECORD_STATE_READY : 可以开启视频录制。用户在加入频道时设置了录制参数,并且没有在录制视频
  • RECORD_STATE_RUNNING : 视频录制中。用户在加入频道时设置了录制参数,并且正在视频录制中

◆ getCdnState()

abstract int com.juphoon.cloud.JCMediaChannel.getCdnState ( )
abstract

获得cdn推流状态

注解
该接口需要在自己加入会议成功后才能调用
返回
cdn推流状态:
  • CDN_STATE_NONE : 无法进行Cdn推流。用户不在频道中或者加入频道时没有设置cdn推流参数
  • CDN_STATE_READY : 可以开启Cdn推流。用户在加入频道时设置了cdn推流参数,并且没有在推流
  • CDN_STATE_RUNNING : Cdn推流中。用户在加入频道时设置了cdn推流参数,并且正在cdn推流中

◆ query()

abstract int com.juphoon.cloud.JCMediaChannel.query ( String  channelId)
abstract

查询频道相关信息

注解
该接口需要在自己加入会议成功后才能调用

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

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

◆ join()

abstract boolean com.juphoon.cloud.JCMediaChannel.join ( String  channelId,
JoinParam  joinParam 
)
abstract

加入频道

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

参数
channelId媒体频道标识
joinParamJoinParam 对象,没有则填 null
返回
调用是否正常
  • true: 正常执行调用流程,加入结果通过 onJoin 方法通知
  • false: 调用失败,存在以下两种场景:
    • 若在调用此方法时,用户的频道状态不是空闲状态,则不会收到回调通知
    • 若在调用此方法时,用户的频道状态是空闲状态,则会收到 onJoin 方法通知

◆ leave()

abstract boolean com.juphoon.cloud.JCMediaChannel.leave ( )
abstract

离开频道

注解
该接口需要在自己加入会议成功后才能调用

当前只支持同时加入一个频道,结果通过 onLeave 通知

返回
调用是否正常
  • true: 正常执行调用流程
  • false: 调用失败

◆ stop()

abstract boolean com.juphoon.cloud.JCMediaChannel.stop ( )
abstract

关闭频道

注解
该接口需要在自己加入会议成功后才能调用

接口调用成功后,此频道内的成员都将被强制退出,自己会收到 onStop 通知,其他成员会收到 onLeave 通知

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

◆ enableUploadAudioStream()

abstract boolean com.juphoon.cloud.JCMediaChannel.enableUploadAudioStream ( boolean  enable)
abstract

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

注解
该接口需要在自己加入会议成功后才能调用

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

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

◆ enableUploadVideoStream()

abstract boolean com.juphoon.cloud.JCMediaChannel.enableUploadVideoStream ( boolean  enable)
abstract

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

注解
该接口需要在自己加入会议成功后才能调用

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

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

◆ enableAudioOutput()

abstract boolean com.juphoon.cloud.JCMediaChannel.enableAudioOutput ( boolean  enable)
abstract

开启/关闭音频输出

注解
该接口需要在自己加入会议成功后才能调用

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

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

◆ requestVideo()

abstract boolean com.juphoon.cloud.JCMediaChannel.requestVideo ( JCMediaChannelParticipant  participant,
@PictureSize int  pictureSize 
)
abstract

请求频道中其他用户的视频流

注解
该接口需要在自己加入会议成功后才能调用

当 pictureSize 为 PICTURESIZE_NONE 时表示关闭请求
建议使用 startVideo 方法代替

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

◆ requestScreenVideo()

abstract boolean com.juphoon.cloud.JCMediaChannel.requestScreenVideo ( String  screenUri,
@PictureSize int  pictureSize 
)
abstract

请求屏幕共享的视频流

注解
该接口需要在自己加入会议成功后才能调用

当 pictureSize 为 PICTURESIZE_NONE 表示关闭请求

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

◆ enableCdn()

abstract boolean com.juphoon.cloud.JCMediaChannel.enableCdn ( boolean  enable,
int  keyInterval 
)
abstract

开启/关闭Cdn推流

注解
该接口需要在自己加入会议成功后才能调用
参数
enable开启/关闭Cdn推流
  • true: 开启 Cdn 推流
  • false: 关闭 Cdn 推流
keyInterval推流关键帧间隔(毫秒),当 enable 为 true 时有效,有效值需要>=1000
返回
调用是否正常

◆ enableRecord()

abstract boolean com.juphoon.cloud.JCMediaChannel.enableRecord ( boolean  enable,
RecordParam  recordParam 
)
abstract

开启/关闭视频录制

注解
该接口需要在自己加入会议成功后才能调用
参数
enable开启/关闭视频录制
  • true: 开启视频录制
  • false: 关闭视频录制
recordParamRecordParam 录制参数,当 enable 为 true 时,可以更改由 join 时传入的录制参数,不需更改则填 null
返回
调用是否正常

◆ enableScreenShare()

abstract boolean com.juphoon.cloud.JCMediaChannel.enableScreenShare ( boolean  enable,
ScreenShareParam  screenShareParam 
)
abstract

开启/关闭屏幕分享

注解
该接口需要在自己加入会议成功后才能调用
参数
enable开启/关闭屏幕分享
  • true: 开启屏幕分享
  • false: 关闭屏幕分享
screenShareParam屏幕分享参数,当 enable 为 true 时有效,传 null 表示使用媒体引擎的默认值,详情见 ScreenShareParam
返回
调用是否正常
  • true:正常执行调用流程
  • false:调用失败

◆ getParticipant()

abstract JCMediaChannelParticipant com.juphoon.cloud.JCMediaChannel.getParticipant ( String  userId)
abstract

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

注解
该接口需要在自己加入会议成功后才能调用
参数
userId用户唯一标识
返回
频道成员对象

◆ getStatistics()

abstract String com.juphoon.cloud.JCMediaChannel.getStatistics ( )
abstract

获取统计信息

注解
该接口需要在自己加入会议成功后才能调用

以Json字符串形式返回,其中包含 "Config"、"Network"、"Transport"、"Participants" 4个键值,示例如下:

{

"Config": "Video Config:\r\n SRTP: off \r\n Codec: H264-SVC \r\n Payload: 125 \r\n Bitrate: 1000 \r\n Framerate: 24 \r\n Resolution: 640x352 \r\n FEC: on|124|123 \r\n FIR: off \r\n Key Interval: 0 \r\n Repeat: 0 \r\n NACK: off \r\n RTX: off \r\n TMMBR: off \r\n RPSI: off \r\n Small NALU: on \r\n ARS: off \r\n BR Min: 10 \r\n BR Max: 2000 \r\n FR Min: 1 \r\n FR Max: 30 \r\n Res. Ctrl: off \r\n Res. Mode: 0 \r\n Fr Ctrl: off \r\n CPU Load Ctrl: off \r\n Target: 80 \r\n Bw Efficient: off \r\n Error Conceal: off \r\n Enhance color: off \r\n Boost bright: off \r\n Boost contrast: off \r\n RTP Ext: CVO \r\n Render Name: N\/A \r\n",

"Network": "Server(-176574541330799):\r\n4466(1): BWE(4592|1231) IN(A:0;)\r\n\r\n",

"Transport": "Local: 100.306884891:44795\r\nRemote: 120:14243\r\n\r\nLastPaths: 120,120\r\n\r\nPath: 120 [tcp]\r\n Step1:Delay\/Loss(S\/R): 55\/0\/0\r\n Cost: 65** (best: 40)\r\nPath: 151 [udp]\r\n Step1:Delay\/Loss(S\/R): 43\/0\/0\r\n Cost: 132\r\nPath: 105 [tcp]\r\n Step1:Delay\/Loss(S\/R): 55\/0\/0\r\n Cost: 142\r\nPath: 100 [tcp]\r\n Step1:Delay\/Loss(S\/R): 43\/0\/0\r\n Cost: 144\r\n",

"Participants": [{

"4466": "Video Sending Stats:\r\n Packets: 0 \r\n Capture Fr: 24 \r\n FPS\/IDR: 0\/0 \r\n Resolution: 640x352[0|0|0] \r\n Bitrate\/Setrate:0\/1000 \r\n QP: 0 \r\n FecPrecent: 20\r\nBe Subscribed Stats:\r\n Audio: true\r\n Video: [0|0|0|0]\r\n Screen: [0|0|0|0]\r\n"

}]

}

返回
统计信息

◆ setCustomProperty()

abstract boolean com.juphoon.cloud.JCMediaChannel.setCustomProperty ( String  property)
abstract

设置频道自定义属性

注解
该接口需要在自己加入会议成功后才能调用
参数
property自定义属性
返回
调用是否正常
  • true:正常执行调用流程
  • false:调用失败

◆ getCustomProperty()

abstract String com.juphoon.cloud.JCMediaChannel.getCustomProperty ( )
abstract

获取频道自定义属性

注解
该接口需要在自己加入会议成功后才能调用
返回
自定义属性

◆ sendMessage()

abstract boolean com.juphoon.cloud.JCMediaChannel.sendMessage ( String  type,
String  content,
String  toUserId 
)
abstract

发送消息

注解
该接口需要在自己加入会议成功后才能调用

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

注解
当参数content大于4K时消息的发送不可靠,为确保消息发送的可靠性可以对消息内容进行压缩。
参数
type消息类型
content消息内容,content不能为空,content不能大于 4k
toUserId接收者id,null则发给频道所有人员
返回
调用是否正常
  • true:正常执行调用流程
  • false:调用失败

◆ sendCommand()

abstract boolean com.juphoon.cloud.JCMediaChannel.sendCommand ( String  name,
String  param 
)
abstract

发送指令

注解
该接口需要在自己加入会议成功后才能调用
  • 指令名: 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":1,"MtcConfDisplayNameKey":"1314","MtcConfPartpLstKey":["[username:10086@sample.cloud.justalk.com]"],"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":4,"MtcConfDisplayNameKey":"123","MtcConfPartpLstKey":{"MtcConfUserUriKey":"[username:10086@sample.cloud.justalk.com]","MtcConfStateKey":4},"MtcConfRoleKey":4}

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

◆ inviteSipUser()

abstract int com.juphoon.cloud.JCMediaChannel.inviteSipUser ( String  userId,
SipParam  sipParam 
)
abstract

邀请Sip用户

注解
该接口需要在自己加入会议成功后才能调用

一般用于对接落地网关等

参数
userId一般为号码
sipParamSipParam 参数对象
返回
调用是否正常

◆ setCustomRole()

abstract void com.juphoon.cloud.JCMediaChannel.setCustomRole ( @CustomRole int  customRole,
JCMediaChannelParticipant  participant 
)
abstract

设置自定义角色

注解
该接口需要在自己加入会议成功后才能调用
参数
customRole自定义角色
participantJCMediaChannelParticipant 对象,传 null 表示自己

◆ getCustomRole()

abstract int com.juphoon.cloud.JCMediaChannel.getCustomRole ( )
abstract

获得自定义角色

注解
该接口需要在自己加入会议成功后才能调用
返回
自定义角色

◆ setCustomState()

abstract void com.juphoon.cloud.JCMediaChannel.setCustomState ( @CustomState int  customState,
JCMediaChannelParticipant  participant 
)
abstract

设置自定义状态

注解
该接口需要在自己加入会议成功后才能调用
参数
customState自定义状态
participantJCMediaChannelParticipant 对象,传 null 表示自己

◆ getCustomState()

abstract int com.juphoon.cloud.JCMediaChannel.getCustomState ( )
abstract

获得自定义状态

注解
该接口需要在自己加入会议成功后才能调用
返回
自定义状态

◆ kick()

abstract boolean com.juphoon.cloud.JCMediaChannel.kick ( JCMediaChannelParticipant  participant)
abstract

将成员踢出频道

注解
该接口需要在自己加入会议成功后才能调用
参数
participantJCMediaChannelParticipant 对象,频道中的成员
返回
调用是否正常
  • true:正常执行调用流程
  • false:调用失败

◆ sendCommandToDelivery()

abstract boolean com.juphoon.cloud.JCMediaChannel.sendCommandToDelivery ( String  command)
abstract

发送命令给推流或录制器

注解
该接口需要在自己加入会议成功后才能调用

发送命令给推流时,只有在频道中并且推流状态为 CDN_STATE_READY 才生效
发送命令给录制器时,只有在频道中并且录制状态为 RECORD_STATE_READY 才生效

参数
command命令字符串
返回
调用是否正常
  • true:正常执行调用流程
  • false:调用失败

◆ enableSelfVideoRatio()

abstract void com.juphoon.cloud.JCMediaChannel.enableSelfVideoRatio ( boolean  enable,
float  ratio 
)
abstract

设置自身视频宽高比

注解
该接口需要在自己加入会议成功后才能调用
参数
enable是否开启自身视频宽高比
  • true: 开启
  • false: 关闭
ratio视频宽高比

◆ startScreenShareVideo()

abstract JCMediaDeviceVideoCanvas com.juphoon.cloud.JCMediaChannel.startScreenShareVideo ( @JCMediaDevice.RenderType int  renderType,
@PictureSize int  pictureSize 
)
abstract

启动频道成员的屏幕分享视频渲染

注解
该接口需要在自己加入会议成功后才能调用 频道成员开启屏幕分享时,调用此方法可获得屏幕分享渲染对象 JCMediaDeviceVideoCanvas
参数
renderType渲染模式:
pictureSize视频请求的尺寸类型:
返回
JCMediaDeviceVideoCanvas 渲染对象

◆ stopScreenShareVideo()

abstract void com.juphoon.cloud.JCMediaChannel.stopScreenShareVideo ( )
abstract

停止屏幕分享视频渲染

注解
该接口需要在自己加入会议成功后才能调用

◆ getSelfParticipant()

abstract JCMediaChannelParticipant com.juphoon.cloud.JCMediaChannel.getSelfParticipant ( )
abstract

获得自身 JCMediaChannelParticipant 对象

注解
该接口需要在自己加入会议成功后才能调用
返回
自身 JCMediaChannelParticipant 对象

◆ getMaxResolution()

abstract int com.juphoon.cloud.JCMediaChannel.getMaxResolution ( )
abstract

获得频道最大分辨率

频道中的最大分辩由第一个加入频道的用户决定, JoinParam 参数中设置的分辩率并一定是频道的最大分辨率,只有加入成功后才能准确知道

注解
该接口需要在自己加入会议成功后才能调用
返回
频道最大分辨率:

◆ subscribeParticipantAudio()

abstract boolean com.juphoon.cloud.JCMediaChannel.subscribeParticipantAudio ( JCMediaChannelParticipant  participant,
boolean  subscribe 
)
abstract

订阅或取消订阅指定用户的音频

注解
该接口需要在自己加入会议成功后才能调用
参数
participantJCMediaChannelParticipant 对象,频道中的成员
subscribe是否订阅
  • true:订阅
  • false:取消订阅
返回
调用是否正常
  • true:正常执行调用流程
  • false:调用失败

类成员变量说明

◆ PICTURESIZE_NONE

final int com.juphoon.cloud.JCMediaChannel.PICTURESIZE_NONE = 0
static

不渲染

◆ PICTURESIZE_MIN

final int com.juphoon.cloud.JCMediaChannel.PICTURESIZE_MIN = 1
static

最小尺寸

◆ PICTURESIZE_SMALL

final int com.juphoon.cloud.JCMediaChannel.PICTURESIZE_SMALL = 2
static

小尺寸

◆ PICTURESIZE_LARGE

final int com.juphoon.cloud.JCMediaChannel.PICTURESIZE_LARGE = 3
static

大尺寸

◆ PICTURESIZE_MAX

final int com.juphoon.cloud.JCMediaChannel.PICTURESIZE_MAX = 4
static

最大尺寸

◆ STATE_IDLE

final int com.juphoon.cloud.JCMediaChannel.STATE_IDLE = 0
static

空闲状态

◆ STATE_JOINING

final int com.juphoon.cloud.JCMediaChannel.STATE_JOINING = 1
static

加入中

◆ STATE_JOINED

final int com.juphoon.cloud.JCMediaChannel.STATE_JOINED = 2
static

已加入

◆ STATE_LEAVING

final int com.juphoon.cloud.JCMediaChannel.STATE_LEAVING = 3
static

离开中

◆ PARTICIPANT_TYPE_NORMAL

final int com.juphoon.cloud.JCMediaChannel.PARTICIPANT_TYPE_NORMAL = 0
static

普通成员

◆ PARTICIPANT_TYPE_PSTN

final int com.juphoon.cloud.JCMediaChannel.PARTICIPANT_TYPE_PSTN = 1
static

PSTN成员

◆ PARTICIPANT_TYPE_WEBRTC

final int com.juphoon.cloud.JCMediaChannel.PARTICIPANT_TYPE_WEBRTC = 2
static

Webrtc成员

◆ PARTICIPANT_TYPE_IRC

final int com.juphoon.cloud.JCMediaChannel.PARTICIPANT_TYPE_IRC = 3
static

录制器成员(录制和推流),该类型成员不会上报给上层应用

◆ VOLUME_STATUS_ZERO

final int com.juphoon.cloud.JCMediaChannel.VOLUME_STATUS_ZERO = 0
static

无声音

◆ VOLUME_STATUS_LOW

final int com.juphoon.cloud.JCMediaChannel.VOLUME_STATUS_LOW = 1
static

◆ VOLUME_STATUS_MID

final int com.juphoon.cloud.JCMediaChannel.VOLUME_STATUS_MID = 2
static

◆ VOLUME_STATUS_HIGH

final int com.juphoon.cloud.JCMediaChannel.VOLUME_STATUS_HIGH = 3
static

◆ VOLUME_STATUS_TOO_HIGH

final int com.juphoon.cloud.JCMediaChannel.VOLUME_STATUS_TOO_HIGH = 4
static

过高

◆ NET_STATUS_DISCONNECTED

final int com.juphoon.cloud.JCMediaChannel.NET_STATUS_DISCONNECTED = 0
static

◆ NET_STATUS_VERY_BAD

final int com.juphoon.cloud.JCMediaChannel.NET_STATUS_VERY_BAD = 1
static

非常差

◆ NET_STATUS_BAD

final int com.juphoon.cloud.JCMediaChannel.NET_STATUS_BAD = 2
static

◆ NET_STATUS_NORMAL

final int com.juphoon.cloud.JCMediaChannel.NET_STATUS_NORMAL = 3
static

一般

◆ NET_STATUS_GOOD

final int com.juphoon.cloud.JCMediaChannel.NET_STATUS_GOOD = 4
static

◆ NET_STATUS_VERY_GOOD

final int com.juphoon.cloud.JCMediaChannel.NET_STATUS_VERY_GOOD = 5
static

非常好

◆ RECORD_STATE_NONE

final int com.juphoon.cloud.JCMediaChannel.RECORD_STATE_NONE = 0
static

无法进行视频录制

◆ RECORD_STATE_READY

final int com.juphoon.cloud.JCMediaChannel.RECORD_STATE_READY = 1
static

可以开启视频录制

◆ RECORD_STATE_RUNNING

final int com.juphoon.cloud.JCMediaChannel.RECORD_STATE_RUNNING = 2
static

视频录制中

◆ CDN_STATE_NONE

final int com.juphoon.cloud.JCMediaChannel.CDN_STATE_NONE = 0
static

无法进行Cdn推流

◆ CDN_STATE_READY

final int com.juphoon.cloud.JCMediaChannel.CDN_STATE_READY = 1
static

可以开启Cdn推流

◆ CDN_STATE_RUNNING

final int com.juphoon.cloud.JCMediaChannel.CDN_STATE_RUNNING = 2
static

Cdn推流中

◆ MAX_RESOLUTION_360p

final int com.juphoon.cloud.JCMediaChannel.MAX_RESOLUTION_360p = 0
static

最大分辨率 360p

◆ MAX_RESOLUTION_720p

final int com.juphoon.cloud.JCMediaChannel.MAX_RESOLUTION_720p = 1
static

最大分辨率 720p

◆ MAX_RESOLUTION_1080p

final int com.juphoon.cloud.JCMediaChannel.MAX_RESOLUTION_1080p = 2
static

最大分辨率 1080p

◆ CUSTOM_ROLE_NONE

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_ROLE_NONE = 0
static

无自定义角色

◆ CUSTOM_ROLE_0

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_ROLE_0 = 1<<12
static

自定义角色0

◆ CUSTOM_ROLE_1

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_ROLE_1 = 1<<13
static

自定义角色1

◆ CUSTOM_ROLE_2

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_ROLE_2 = 1<<14
static

自定义角色2

◆ CUSTOM_ROLE_3

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_ROLE_3 = 1<<15
static

自定义角色3

◆ CUSTOM_STATE_NONE

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_STATE_NONE = 0
static

无自定义状态

◆ CUSTOM_STATE_0

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_STATE_0 = 1<<12
static

自定义状态0

◆ CUSTOM_STATE_1

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_STATE_1 = 1<<13
static

自定义状态1

◆ CUSTOM_STATE_2

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_STATE_2 = 1<<14
static

自定义状态2

◆ CUSTOM_STATE_3

final int com.juphoon.cloud.JCMediaChannel.CUSTOM_STATE_3 = 1<<15
static

自定义状态3

◆ volumeChangeNotify

boolean com.juphoon.cloud.JCMediaChannel.volumeChangeNotify = false

是否通知成员音量变化,默认不通知

  • true: 通知
  • false: 不通知

该类的文档由以下文件生成:
  • cloud/src/main/mediachannel/com/juphoon/cloud/JCMediaChannel.java
最后更新时间: 2023/4/28 11:17:11