publishStreamVideo method
@detail api
@valid since 3.60. 自 3.60 起,该接口替代了 publishStream、unpublishStream 、publishScreen 和 unpublishScreen 方法来实现下述功能。如果你已升级至 3.60 及以上版本,并且仍在使用这两个方法,请迁移到此接口。
@region 房间管理
@author xuyiling.x10
@brief 发布/取消发布视频流。
@param publish 是否发布视频流。
- true: 发布。
- false: 取消发布。
@return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 如果你已经在用户进房时通过调用 joinRoom{@link #RTCRoom#joinRoom} 成功选择了自动发布,则无需再调用本接口。 - 调用 setUserVisibility{@link #RTCRoom#setUserVisibility} 方法将自身设置为不可见后无法调用该方法,需将自身切换至可见后方可调用该方法发布摄像头视频流。 - 如果你需要发布麦克风采集到的音频流,调用 publishStreamAudio{@link #RTCRoom#publishStreamAudio}。 - 如果你需要向多个房间发布流,调用 startForwardStreamToRooms{@link #RTCRoom#startForwardStreamToRooms}。 - 调用此方法后,房间中的所有远端用户会收到 onUserPublishStreamVideo{@link #IRTCRoomEventHandler#onUserPublishStreamVideo} 回调通知,订阅了视频流的远端用户会收到 onFirstRemoteVideoFrameDecoded{@link #IRTCEngineEventHandler#onFirstRemoteVideoFrameDecoded} 回调。
Implementation
Future<int?> publishStreamVideo(bool publish) async {
$a() => ($instance as $p_a.RTCRoom).publishStreamVideo(publish);
$i() => ($instance as $p_i.ByteRTCRoom).publishStreamVideo(publish);
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}