BBASMRTCBridge.h 8.13 KB
//
//  BBASMRTCBridge.h
//  BBAMNP
//
//  Created by baidu on 2020/4/14.
//  Copyright © 2020 Baidu. All rights reserved.
//

#import "BBASMBaseAPIBridge.h"

NS_ASSUME_NONNULL_BEGIN

@protocol BBASMRTCBridgeExports <JSExport>

#pragma mark -- RTCRoomAPI

/**
 * 描  述: RTCRoom, 登录房间
 * 示  例: baiduboxapp://swanAPI/enterRoom?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1106
 * 备  注:
 * ********** description ************
 * @name:     rtcRoom.enterRoom
 * @authority: swanAPI
 * @path:      /enterRoom
 * @args:      [{"name":"slaveId","value":"string"},{"name":"roomId","value":"string="},{"name": "componentId","value": "string="},{"name":"displayName","value":"string"},{"name":"userId","value":"number"},{"name":"roomName","value":"string"},{"name":"tokenStr","value":"string"},{"name":"sdkAppId","value":"string"}]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.enterRoom"}}}
 */
- (NSDictionary *)enterRoom:(JSValue *)params;

/**
 * 描  述: RTCRoom, 退出房间
 * 示  例: baiduboxapp://swanAPI/exitRoom?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1108
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.exitRoom
 * @authority: swanAPI
 * @path:      /exitRoom
 * @args:        [ ]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.exitRoom"}}}
 */
- (NSDictionary *)exitRoom:(JSValue *)params;

/**
 * 描  述: RTCRoom,获取远端用户列表
 * 示  例: baiduboxapp://swanAPI/getRemoteUserList?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1113
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.getRemoteUserList
 * @authority: swanAPI
 * @path:      /getRemoteUserList
 * @args:        [{"name": "cb", "value": "string"}]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.getRemoteUserList"}}}
 */
- (NSDictionary *)getRemoteUserList:(JSValue *)params;

/**
 * 描  述: RTCRoom, 发布本地音视频
 * 示  例: baiduboxapp://swanAPI/publishLocalStream?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1109
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.publishLocalStream
 * @authority: swanAPI
 * @path:      /publishLocalStream
 * @args:        []
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.publishLocalStream"}}}
 */
- (NSDictionary *)publishLocalStream:(JSValue *)params;

/**
 * 描  述: RTCRoom, 取消发布本地音视频
 * 示  例: baiduboxapp://swanAPI/unpublishLocalStream?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1110
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.unpublishLocalStream
 * @authority: swanAPI
 * @path:      /unpublishLocalStream
 * @args:        [ ]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.unpublishLocalStream"}}}
 */
- (NSDictionary *)unpublishLocalStream:(JSValue *)params;

/**
 * 描  述: RTCRoom, 订阅远端用户的视频流
 * 示  例: baiduboxapp://swanAPI/subscribeRemoteStream?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1111
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.subscribeRemoteStream
 * @authority: swanAPI
 * @path:      /subscribeRemoteStream
 * @args:        [{"name": "userId", "value": "number"}]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.subscribeRemoteStream"}}}
 */
- (NSDictionary *)subscribeRemoteStream:(JSValue *)params;

/**
 * 描  述: RTCRoom, 取消订阅远端用户的视频流
 * 示  例: baiduboxapp://swanAPI/unsubscribeRemoteStream?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1112
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.unsubscribeRemoteStream
 * @authority: swanAPI
 * @path:      /unsubscribeRemoteStream
 * @args:        [{"name": "userId", "value": "number"}]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.unsubscribeRemoteStream"}}}
 */
- (NSDictionary *)unsubscribeRemoteStream:(JSValue *)params;

/**
 * 描  述: RTCRoom, 设置指定远端画面暂停/恢复播放
 * 示  例: baiduboxapp://swanAPI/setRemoteVideoPlayState?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1114
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.setRemoteVideoPlayState
 * @authority: swanAPI
 * @path:      /setRemoteVideoPlayState
 * @args:        [{"name": "isPlay", "value": "boolean"},{"name": "userId", "value": "number"}]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.setRemoteVideoPlayState"}}}
 */
- (NSDictionary *)setRemoteVideoPlayState:(JSValue *)params;

/**
 * 描  述: RTCRoom, 设置指定远端画面静音/恢复播放
 * 示  例: baiduboxapp://swanAPI/setRemoteAudioPlayState?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1115
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.setRemoteAudioPlayState
 * @authority: swanAPI
 * @path:      /setRemoteAudioPlayState
 * @args:        [{"name": "isPlay", "value": "boolean"},{"name": "userId", "value": "number"}]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.setRemoteAudioPlayState"}}}
 */
- (NSDictionary *)setRemoteAudioPlayState:(JSValue *)params;

/**
 * 描  述: RTCRoom,切换切换摄像头
 * 示  例: baiduboxapp://swanAPI/switchCamera?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1133
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.switchCamera
 * @authority: swanAPI
 * @path:      /switchCamera
 * @args:       []
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.switchCamera"}}}
 */
- (NSDictionary *)switchCamera:(JSValue *)params;

/**
 * 描  述: RTCRoom, 获取用户语音激励信息
 * 示  例: baiduboxapp://swanAPI/getRemoteAudioLevels?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1145
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.getRemoteAudioLevels
 * @authority: swanAPI
 * @path:      /getRemoteAudioLevels
 * @args:        [{"name": "cb", "value": "string"}]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.getRemoteAudioLevels"}}}
 */
- (NSDictionary*)getRemoteAudioLevels:(JSValue *)params;

/**
 * 描  述:RTCRoom, 将某用户踢出房间
 * 示  例: baiduboxapp://swanAPI/kickOutUser?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1266
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.kickOutUser
 * @authority: swanAPI
 * @path:      /kickOutUser
 * @args:      [{"name": "userId", "value": "number"}]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.kickOutUser"}}}
 */
- (NSDictionary *)kickOutUser:(JSValue *)params;

#pragma mark -- rtcRoomItemAPI

/**
 * 描  述: rtcRoomItem, 设置画面进入/退出全屏
 * 示  例: baiduboxapp://swanAPI/fullScreen?params=$params&callback=$callback
 * 文  档: http://es.baidu-int.com/index#/apidetail/1121
 * 备  注:
 * ********** description ************
 * @name:      rtcRoom.fullScreen
 * @authority: swanAPI
 * @path:      /fullScreen
 * @args:        [{"name": "fullScreen","value": "boolean"},{"name": "slaveId","value": "string"},{"name": "rtcRoomItemId","value": "string="},{"name": "componentId","value": "string="}]
 * @config:    {"swan": {"jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.rtcBridge.fullScreen"}}}
 */
- (NSDictionary *)fullScreen:(JSValue *)params;

@end

@interface BBASMRTCBridge : BBASMBaseAPIBridge <BBASMRTCBridgeExports>

@end

NS_ASSUME_NONNULL_END