Source: doc.js

/**
 * @description 用户身份类型
 * @typedef {object} ChuangUserRole
 * @property    {int} Auchor   1  主播
 * @property    {int} Audience 2  观众
 * @property    {int} Interaction 3 互动
 */
export function ChuangUserRole() { }
/**
 * @description 推流通道
 * @typedef {object} ChuangPublishChannel
 * @property    {int} MAIN   0  主通道
 * @property    {int} AUX    1  副通道
 */
export function ChuangPublishChannel() { }

/**
* @description 视频自采集数据类型
* @typedef {object} ChuangVideoBufferType
* @property    {int} UNKNOWN_DATA   0  未知类型
* @property    {int} RAW_DATA       1  裸数据
* @property    {int} ENCODED_DATA   2  编码后264数据
*/
export function ChuangVideoBufferType() { }
/**
  * @description   音频配置信息
  * @typedef {object} ChuangAudioConfig
  * @property    {int} profileId  音频级别 
  * @property    {string} szAudioDev:  麦克风名称
  * @property    {int} useLoopBack: 是否采集loopback
  */
export function ChuangAudioConfig() { }

/**
 * @description 流方向类型
 * @typedef {object} ChuangStreamRotation
 * @property    {int} ROTATION_0   0  无旋转
 * @property    {int} ROTATION_90  1  顺时针旋转90度
 * @property    {int} ROTATION_180 2  顺时针旋转180度
 * @property    {int} ROTATION_270 3  顺时针旋转270度
 */
export function ChuangStreamRotation() { }

/**
   * @description  视频配置信息
   * @typedef {object} ChuangVideoConfig
   * @property    {int} captureWidth  采集宽 
   * @property    {int} captureHeight  采集高 
   * @property    {int} encodeWidth  推流编码宽 
   * @property    {int} encodeHeight  推流编码高 
   * @property    {int} fps  帧率 
   * @property    {int} bitrateKbps  码率 
   * @property    {int} renderMode  采集数据宽高与推流数据宽高不等时的裁剪模式 
   * @property    {string} szCameraName:  摄像头名称
   */
export function ChuangVideoConfig() { }

/**
   * @description   视频配置信息
   * @typedef {object} ChuangStreamConfig
   * @property    {string} streamID:  推流流名
   * @property    {string} rtmpAddress:  rtmp完整推流地址
   * @property    {int} streamMode  推流类型 
   */
export function ChuangStreamConfig() { }

/**
    * @description   视频配置信息
    * @typedef {object} ChuangCustomAudioCaptureConfig
    * @property    {int} sampleRate:  采样率
    * @property    {int} channel:  声道数
    */
export function ChuangCustomAudioCaptureConfig() { }

/**
   * @description   视频帧参数
   * @typedef {object} ChuangVideoFrameParam
   * @property    {ChuangVideoPixelType} type:  视频像素存储类型
   * @property    {int} width:  宽
   * @property    {int} height:  高
   * @property    {ChuangStreamRotation} rotation:  旋转角度
   */
export function ChuangVideoFrameParam() { }

/**
   * @description   视频帧参数
   * @typedef {object} ChuangVideoEncodedFrameParam
   * @property    {bool} isKeyFrame:  是否关键帧
   * @property    {int} width:  宽
   * @property    {int} height:  高
   * @property    {ChuangStreamRotation} rotation:  旋转角度
   */
export function ChuangVideoEncodedFrameParam() { }



/**
* @description   绘制窗口信息
* @typedef {object} ChuangVideoCanvas
* @property    {HTMLElement} canvas:  canvas
* @property    {int} renderMode:  填充模式
* @property    {int} mirrorMode:  镜像
*/

export function ChuangVideoCanvas() { }


/**
    * @description   音频配置
    * @typedef {object} ChuangCustomAudioRenderConfig
    * @property    {int} sampleRate:  采样率
    * @property    {int} channel:  声道数
    */
export function ChuangCustomAudioRenderConfig() { }


/**
   * @description   视频配置
   * @typedef {object} ChuangCustomVideoRenderConfig
   * @property    {ChuangVideoBufferType} type:  视频数据格式类型
   * @property    {ChuangVideoPixelType} format:  视频像素存储类型
   * @property    {bool} enableEngineRender:  是否SDK渲染
   */
export function ChuangCustomVideoRenderConfig() { }

/**
  * @description    混流水印信息
  * @typedef {object} ChuangMixStreamWatermark
  * @property    {string} image: 水印图片id
  * @property    {int} left:  混流画布中水印左上角x坐标
  * @property    {int} top: 混流画布中水印左上角y坐标
  * @property    {int} right 混流画布中水印右下角x坐标
  * @property    {int} bottom  混流画布中水印右下角y坐标
  */
export function ChuangMixStreamWatermark() { }
/**
 * @description    混流单个流的信息
 * @typedef {object} ChuangMixStreamInfo
 * @property    {string} streamId  流ID
 * @property    {int} width: 流宽
 * @property    {int} height: 流高
 * @property    {int} zlevel  流所处层 
 * @property    {bool} mixVideo  是否混当前流 
 * @property    {int} srcRect.left  视频源 左 
 * @property    {int} srcRect.top   视频源 上 
 * @property    {int} srcRect.right 视频源 右
 * @property    {int} srcRect.bottom   视频源 下
 * @property    {int} dstRect.left  视频显示 左 
 * @property    {int} dstRect.top   视频显示 上 
 * @property    {int} dstRect.right 视频显示 右
 * @property    {int} dstRect.bottom   视频显示 下
 * @property    {ChuangVideoRenderMode} renderMode 填充模式
 * @property    {ChuangStreamRotation} rotation   流方向类型
 */
export function ChuangMixStreamInfo() { }
/**
* @description   混流信息
* @typedef {object} ChuangMixStreamConfig
* @property    {string} target  rtmp完整推流地址
* @property    {int} width:  流宽
* @property    {int} height: 流高
* @property    {int} videoBitrateKbps  码率 
* @property    {string} backgroundImage  混流背景图id 
* @property    {bool} noticeStream 是否将该混流通知给房间内其他用户
* @property    {int} nInputStreamCount:  混流总数
* @property    {ChuangMixStreamWatermark} watermark 混流水印信息
* @property    {ChuangMixStreamInfo} mixStreams:  混流流信息(数组)
*/
export function ChuangMixStreamConfig() { }

/**
* @description   网络测速配置
* @typedef {object} ChuangNetworkSpeedTestConfig
* @property    {bool} testUpLink  是否测试上行连接
* @property    {int} expectedUpLinkBitrateKbps:  上行连接测速码率,单位Kbps (10Kbps~10000Kbps)
* @property    {bool} testDownLink: 是否测试下行连接
* @property    {int} exceptedDownLinkBitrateKbps  下行连接测速码率,单位Kbps (10Kbps~10000Kbps) 
*/
export function ChuangNetworkSpeedTestConfig() { }
/**
 * @description 事件
 * @typedef {object} eventtype
 * @property    {string}'onRoomStateUpdate'                      房间状态变化通知       返回(roomId, state, errorCode)
 * @property    {string}'onRoomStreamUpdate'                     房间流状态变化通知     返回(roomId, type, streams)
 * @property    {string}'onPublishStreamStateUpdate'             推流状态变化通知       返回(streamId, state, errorCode)
 * @property    {string}'onPublishStreamVideoSizeChanged'        推流宽高变化通知       返回(streamId, width, height)
 * @property    {string}'onPublishStreamQualityUpdate'           推流质量回调           返回(Infos)
 * @property    {string}'onCaptureSoundLevelUpdate'              采集音量大小回调   返回(Infos, nStreamCount)
 * @property    {string}'onPlayStreamQualityUpdate'              播流质量通知     返回(streamId, Infos)   
 * @property    {string}'onPlayStreamStateUpdate'                播流状态回调    返回(streamId, state, errorCode)
 * @property    {string}'onRemoteSoundLevelUpdate'               播流音量大小回调   返回(Infos, nStreamCount)
 * @property    {string}'onPlayStreamEvent'                      播流回调通知   返回(streamId, event)
 * @property    {string}'onPlayStreamFirstAudio'                 播流收到第一帧音频回调  返回(streamId)
 * @property    {string}'onPlayStreamFirstVideo'                 播流收到第一帧视频回调 返回(streamId)
 * @property    {string}'onPlayStreamStateChanged'               播流状态改变通知    返回(streamId, state)
 * @property    {string}'onPlayStreamVideoSizeChanged'           播流宽高改变通知   返回(streamId, width, height)
 * @property    {string}'onPlayStreamVideoRotationChanged'       播流视频方向旋转改变通知   返回(streamId, rotation)
 * @property    {string}'onReceiveStreamAttchedMessage'          收到推流附加消息  返回(streamId, msg, messageLen, timestampOffset)
 * @property    {string}'onNetworkSpeedTestQualityUpdate'        网络测速回调  返回(Infos, type)
 * @property    {string}'onNetworkTypeChanged'                   网络状态变化回调  返回(type)
 * @property    {string}'onFirstLocalAudioFramePublished'        发送本地首帧音频回调    返回(streamId)
 * @property    {string}'onFirstLocalVideoFramePublished'        发送本地首帧视频回调   返回(streamId)
 * @property    {string}'onPlayStreamFirstAudioDecoded'          当前流解码第一帧音频回调  返回(streamId, elapsed)
 * @property    {string}'onAudioRouteChange'                     音频路由变化回调  返回(result)   
 * @property    {string}'onStart'                                通知将要开始采集视频帧,收到该回调后向 SDK 发送的视频帧数据才有效   返回(channel) 
 * @property    {string}'onStop'                                 SDK 通知将要停止采集视频帧   返回(channel)
 * @property    {string}'onEncodedDataTrafficControl'            SDK 检测到网络变化,通知开发者需要做流量控制  返回(Infos, channel)
 * @property    {string}'onVideoNeedKeyFrame'                    在外部采集为编码后的264数据时,SDK 检测到网络变化,通知开发者需要强制编码关键帧  返回(channel)
 * @property    {string}'onRemoteVideoFrameRawData'              远端流外部渲染二进制数据回调    返回(streamId, data, dataLength, Infos)
 * @property    {string}'onRemoteVideoFrameEncodedData'          远端流外部渲染H264回调   返回(streamId, data, dataLength, Infos, referenceTimeMillisecond)
 * @property    {string}'onLocalVideoFrameRawData'               本地流外部渲染二进制数据回调  返回(channel, data, dataLength, Infos)
 * @property    {string}'onMixStreamResult'                      混流结果回调  返回(errorCode)
 * @property    {string}'onAudioMixingCopyData'                  在外部采集为编码后的264数据时,SDK 检测到网络变化,通知开发者需要强制编码关键帧  返回(channel, Infos)
 */
export function eventtype() { }