subscribeStreamAudio method

Future<int?> subscribeStreamAudio({
  1. required string streamId,
  2. required bool subscribe,
})

@detail api @valid since 3.60. 自 3.60 起,该接口替代了 subscribeStream, unsubscribeStream, subscribeScreenunsubscribeScreen 方法来实现下述功能。如果你已升级至 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}');
  }
}