Skip to content

Commit

Permalink
修改文档
Browse files Browse the repository at this point in the history
Change-Id: Ie63b58c437be0409cfc53bf07eea103d29c27b67
  • Loading branch information
SundoggyNew committed May 9, 2023
1 parent 5bfd312 commit caa5ecf
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 53 deletions.
65 changes: 34 additions & 31 deletions sdk/video-advanced-app-android/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,85 +51,88 @@

#### 获取RoomKey,

需先通过 [云API]( https://github.com/tencentyun/iot-link-android/blob/video-v2.6.x/sdk/video-advanced-app-android/src/main/java/com/tencent/iot/video/link/service/VideoBaseService.kt#L197-L209) 获取到链接通话参数转换成RoomKey模型,RoomKey是TIoTCoreXP2PBridge中initWithRoomKey所需链接通话参数
需先通过 [云API]( https://github.com/tencentyun/iot-link-android/blob/video-v2.6.x/sdk/video-advanced-app-android/src/main/java/com/tencent/iot/video/link/service/VideoBaseService.kt#L197-L209) 获取到链接对端参数转换成RTCParams模型,RoomKey是IoTVideoCloud中startAppWith所需链接通话参数IoTVideoParams->RTCParams
由于云API需要配置SecretId、SecretKey,该参数直接放在客户端,会有泄漏风险,故建议通过自建服务访问该API获取到链接通话参数,再将链接通话参数传进SDK。

#### com.tencent.iot.video.link.rtc.impl.IoTVideoCloud

1、初始化 TIoTCoreXP2PBridge#startAppWith(Context context)
1、链接对端 IoTVideoCloud#startAppWith(IoTVideoParams params)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| context | Context | 上下文 |
| params | IoTVideoParams | p2p模式 必传参数xp2pinfo、productid、devicename rtc模式 必传参数RTCParams |

| 返回值 | 描述 |
|:-|:-|
| TIoTCoreXP2PBridge | TIoTCoreXP2PBridge实例 |

2、开始进房 TIoTCoreXP2PBridge#enterRoom(RoomKey roomKey)
2、设置事件回调 IoTVideoCloud#setListener(IoTVideoCloudListener mIoTVideoCloudListener)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| roomKey | RoomKey | 链接通话参数 |
| mIoTVideoCloudListener | IoTVideoCloudListener | 获得来自 SDK 的各类事件通知(比如:错误码,警告码,音视频状态参数等)。 |

3、设置回调 TIoTCoreXP2PBridge#setCallback(XP2PCallback callback)
3、开始推送本地音视频流 IoTVideoCloud#startLocalStream(String deviceName)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| callback | XP2PCallback | 回调 |
| deviceName | String | 要推给某个设备的名称。 |

4、释放链接 TIoTCoreXP2PBridge#release()
4、停止推送本地音视频流 IoTVideoCloud#stopLocalStream()

5、发送信令 TIoTCoreXP2PBridge#sendMsgToPeer(String msg)
5、断开链接 IoTVideoCloud#stopAppService(String deviceName)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| msg | String | 信令消息 |
| deviceName | String | 断开链接设备的名称。 |

6、使用通道发送自定义消息给链接中的设备 IoTVideoCloud#sendCustomCmdMsg(String deviceName, String msg, long timeout_us)

| 返回值 | 描述 |
|:-|:-|
| boolean | 发送是否成功 |
| 参数 | 类型 | 描述 |
|:-|:-|:-|
| deviceName | String | 设备的名称。 |
| msg | String | 待发送的消息,rtc单个消息的最大长度被限制为 1KB。p2p 可以为任意格式字符或二进制数据(格式必须为`action=user_define&cmd=xxx`,需要传输的数据跟在`cmd=`后面),长度由cmd_len提供,建议在16KB以内,否则会影响实时性。 |
| timeout_us | long | rtc忽略此参数。 p2p命令超时时间,单位为微秒,值为0时采用默认超时(7500ms左右) 。 |

6、打开摄像头预览 TIoTCoreXP2PBridge#openCamera(boolean isFrontCamera, TXCloudVideoView txCloudVideoView)
7、打开摄像头预览 IoTVideoCloud#openCamera(boolean isFrontCamera, TXCloudVideoView txCloudVideoView)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| isFrontCamera | boolean | 是否是前置摄像头 |
| txCloudVideoView | TXCloudVideoView | 承载视频画面的控件 |
| isFrontCamera | boolean | true:前置摄像头;false:后置摄像头。 |
| txCloudVideoView | TXCloudVideoView | 承载视频画面的控件 |

7、开始推流 TIoTCoreXP2PBridge#sendVoiceToServer()
8、关闭摄像头预览 IoTVideoCloud#closeCamera()

8、绑定远端视频渲染控件 TIoTCoreXP2PBridge#startRemoteView(String userId, TXCloudVideoView txCloudVideoView)
9、绑定远端视频渲染控件 IoTVideoCloud#startRemoteView(String userId, TXCloudVideoView txCloudVideoView)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| userId | String | 远端用户id |
| txCloudVideoView | TXCloudVideoView | 承载视频画面的控件 |

9、切换摄像头 TIoTCoreXP2PBridge#switchCamera(boolean isFrontCamera)
10、切换摄像头 IoTVideoCloud#changeCameraPositon(boolean isFrontCamera)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| isFrontCamera | boolean | 是否是前置摄像头 |
| isFrontCamera | boolean | true:前置摄像头;false:后置摄像头。 |

10、设置麦克风是否静音 TIoTCoreXP2PBridge#setMicMute(boolean isMute)
11、设置关闭打开麦克风 IoTVideoCloud#muteLocalAudio(boolean mute)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| isMute | boolean | 是否静音 |
| mute | boolean | true:静音;false:恢复。 |

11、设置是否免提 TIoTCoreXP2PBridge#setHandsFree(boolean isHandsFree)
12、设置是否免提 IoTVideoCloud#setHandsFree(boolean isHandsFree)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| isHandsFree | boolean | 是否免提 |
| isHandsFree | boolean | true:免提(扬声器);false:听筒。 |

12、关闭摄像头预览 TIoTCoreXP2PBridge#closeCamera()
13、设置是否适配重力感应 IoTVideoCloud#setEnableGSensor(boolean enable)

| 参数 | 类型 | 描述 |
|:-|:-|:-|
| enable | boolean | true:适配重力感应;false:不适配重力感应。 |

### iot-video-advanced-app-android SDK 回调callback 设计说明
### iot-video-advanced-app-android SDK 回调listener 设计说明

com.tencent.iot.video.link.rtc.IoTVideoCloudListener 回调callback说明如下
com.tencent.iot.video.link.rtc.IoTVideoCloudListener 回调listener说明如下

| 回调接口 | 功能 |
| ----------------------- | ---------- |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,15 @@ public void setListener(IoTVideoCloudListener mIoTVideoCloudListener) {
this.mIoTVideoCloudListener = mIoTVideoCloudListener;
}

/**
* 开始推送本地音视频流
* @param deviceName 要推给某个设备的名称。
*/
public void startLocalStream(String deviceName) {
mRTCCloud.muteLocalAudio(false);
mRTCCloud.muteLocalVideo(0, false);
}

/**
* 停止推送本地音视频流
*/
Expand Down Expand Up @@ -191,15 +200,6 @@ public void closeCamera() {
mRTCCloud.stopLocalPreview();
}

/**
* 开始推送本地音视频流
* @param deviceName 要推给某个设备的名称。
*/
public void startLocalStream(String deviceName) {
mRTCCloud.muteLocalAudio(false);
mRTCCloud.muteLocalVideo(0, false);
}

/**
* 开始渲染远端音视频流
* @param userId 渲染设备的userid。
Expand All @@ -212,18 +212,6 @@ public void startRemoteView(String userId, TXCloudVideoView txCloudVideoView) {
mRTCCloud.startRemoteView(userId, TRTC_VIDEO_STREAM_TYPE_BIG, txCloudVideoView);
}

/**
* 设置是否适配重力感应
* @param enable true:适配重力感应;false:不适配重力感应。
*/
public void setEnableGSensor(boolean enable) {
if (enable) {
mRTCCloud.setGSensorMode(TRTC_GSENSOR_MODE_UIAUTOLAYOUT);
} else {
mRTCCloud.setGSensorMode(TRTC_GSENSOR_MODE_DISABLE);
}
}

/**
* 切换前后摄像头
* @param isFrontCamera true:前置摄像头;false:后置摄像头。
Expand All @@ -237,7 +225,7 @@ public void changeCameraPositon(boolean isFrontCamera) {
}

/**
* 暂停/恢复发布本地的音频流
* 设置关闭打开麦克风
* @param mute true:静音;false:恢复。
*/
public void muteLocalAudio(boolean mute) {
Expand All @@ -256,6 +244,18 @@ public void setHandsFree(boolean isHandsFree) {
}
}

/**
* 设置是否适配重力感应
* @param enable true:适配重力感应;false:不适配重力感应。
*/
public void setEnableGSensor(boolean enable) {
if (enable) {
mRTCCloud.setGSensorMode(TRTC_GSENSOR_MODE_UIAUTOLAYOUT);
} else {
mRTCCloud.setGSensorMode(TRTC_GSENSOR_MODE_DISABLE);
}
}

/**
* RTC的监听器
*/
Expand Down

0 comments on commit caa5ecf

Please sign in to comment.