subscribeStreamAudio method
@detail api
@valid since 3.60. 自 3.60 起,该接口替代了 subscribeStream, unsubscribeStream, subscribeScreen 和 unsubscribeScreen 方法来实现下述功能。如果你已升级至 3.60 及以上版本,且仍在使用这两个方法,请迁移至该接口。
@author xuyiling.x10
@brief 订阅/取消订阅房间内指定的远端音频流。
@param streamId 目标远端音频流 ID。
@param subscribe 是否要订阅指定的远端音频流。
- true: 订阅。
- false: 取消订阅。
@return 方法调用结果:
- 0:成功;
- <0:失败。具体失败原因参看 ReturnStatus{@link #ReturnStatus}。
@note
- 若当前用户在调用本接口时已经订阅该远端音频流(手动订阅或自动订阅),则将根据本次传入的参数,更新订阅配置。
- 你必须先通过 onUserPublishStreamAudio{@link #IRTCRoomEventHandler#onUserPublishStreamAudio} 回调获取当前房间里的远端麦克风流信息,然后调用本方法按需订阅。
- 调用该方法后,你会收到 onAudioSubscribeStateChanged{@link #IRTCRoomEventHandler#onAudioSubscribeStateChanged} 通知方法调用结果。
- 成功订阅远端用户的媒体流后,订阅关系将持续到调用 subscribeStreamAudio{@link #RTCRoom#subscribeStreamAudio} 取消订阅或本端用户退房。
- 关于其他调用异常,你会收到 onAudioSubscribeStateChanged{@link #IRTCRoomEventHandler#onAudioSubscribeStateChanged} 回调通知,具体异常原因参看 SubscribeStateChangeReason{@link #SubscribeStateChangeReason}。
Implementation
Future<int?> subscribeStreamAudio(
{required string streamId, required bool subscribe}) async {
$a() =>
($instance as $p_a.RTCRoom).subscribeStreamAudio(streamId, subscribe);
$i() => ($instance as $p_i.ByteRTCRoom)
.subscribeStreamAudio(streamId, subscribe);
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}