Options
All
  • Public
  • Public/Protected
  • All
Menu

Class RemoteStream

远端流,房间内其他用户发布的流,可通过 client 进行订阅

Hierarchy

Index

Properties

audioMuted

audioMuted: boolean = false

当前流是否 mute 了音频

id

id: string

当前流ID

Readonly isLocal

isLocal: boolean

是否为本地流

Readonly mediaStream

mediaStream: MediaStream

当前流包含的媒体流,关于媒体流,请详见 MediaStream

sourceAudioMuted

sourceAudioMuted: boolean

音频源是否已 mute,当源端 mute/unmute 音频时,本端将收到 mute-audiounmute-audio 事件的通知,同时此值将变为对应值

sourceVideoMuted

sourceVideoMuted: boolean

视频源是否已 mute,当源端 mute/unmute 视频时,本端将收到 mute-videounmute-video 事件的通知,同时此值将变为对应值

userId

userId: string

当前流所属用户的ID 注:若创建本地流时指定的 userId 与 join 时指定的 userId 不同,那么发布本条流时,流的 userId 将会自动被自动更新为 join 时指定的 userId

videoMuted

videoMuted: boolean = false

当前流是否 mute 了视频

Methods

getAudioLevel

  • getAudioLevel(): number
  • 获取当前流的音量大小,只有当本地流或远端流中有音频数据才有效。

    example
    setInterval(() => {
      const level = stream.getAudioLevel();
      if (level > 0) {
        console.log(`user ${stream.userId} is speaking`);
      }
    }, 200);
    

    Returns number

getMediaType

getStats

  • 获取流发布或订阅后的统计数据

    example
    stream
      .getStats()
      .then((stats) => {
        console.log('当前流的统计数据为: ', stats);
      });
    

    Returns Promise<StreamStats>

hasAudio

  • hasAudio(): boolean
  • 判断当前流是否有音频

    example
    const result = stream.hasAudio();
    

    Returns boolean

hasVideo

  • hasVideo(): boolean
  • 判断当前流是否有视频

    example
    const result = stream.hasVideo();
    

    Returns boolean

muteAudio

  • muteAudio(): boolean
  • mute 当前流的音频

    • 本地流调用此方法时,将不向服务器推送音频数据,远端用户将收到 mute-audio 的事件通知
    • 远端流调用此方法时,仅为不从服务器拉取音频数据,并无事件通知远端用户
    example
    const result = stream.muteAudio();
    console.log(`stream's audio is muted ${stream.audioMuted}`);
    

    Returns boolean

    操作是否成功

muteVideo

  • muteVideo(): boolean
  • mute 当前流的视频

    • 本地流调用此方法时,将不向服务器推送视频数据,远端用户将收到 mute-video 的事件通知
    • 远端流调用此方法时,仅为不从服务器拉取视频数据,并无事件通知远端用户
    example
    const result = stream.muteVideo();
    console.log(`stream's video is muted ${stream.videoMuted}`);
    

    Returns boolean

    操作是否成功

off

  • off<T>(type: T, listener: Listener<T>): EventEmitter
  • 取消监听流对象事件

    Type parameters

    • T: "error" | "user-joined" | "user-left" | "kick-off" | "stream-added" | "stream-removed" | "stream-subscribed" | "stream-published" | "stream-reconnecting" | "stream-reconnected" | "mute-audio" | "unmute-audio" | "mute-video" | "unmute-video" | "first-key-frame" | "audio-track-ended" | "screen-sharing-stopped" | "connection-state-changed" | "network-quality" | "player-status-change" | "device-changed" | "*"

    Parameters

    • type: T

      流对象事件类型,特别的,当为 '*' 时,取消监听所有事件

    • listener: Listener<T>

      流对象事件监听函数

    Returns EventEmitter

on

  • on<T>(type: T, listener: Listener<T>): EventEmitter
  • 监听流对象事件

    Type parameters

    Parameters

    • type: T

      流事件类型

    • listener: Listener<T>

      流事件监听函数

    Returns EventEmitter

play

  • play(container: string | HTMLElement, opts?: PlayOptions): Promise<void>
  • 播放当前流

    example
    const container = 'xxx'; // 比如 id 为 xxx 的 div 元素
    stream
      .play(container)
      .catch((err) => {
        console.log(`播放失败: ${err}`); // 一般由于浏览器对自动播放的限制导致播放失败
      });
    
    reject

    RtcError

    Parameters

    • container: string | HTMLElement

      播放音视频时,包裹 video 标签所用的容器元素或容器元素的 ID

    • Optional opts: PlayOptions

      其他播放参数,参见PlayOptions

    Returns Promise<void>

resume

  • resume(): Promise<void>
  • 恢复播放流,一般由于浏览器限制无法自动播放时,可提示用户手动触发该方法进行恢复播放

    example
    stream
      .resume()
      .catch((err) => {
        console.log(`恢复播放失败:${err}`);
      });
    

    Returns Promise<void>

setAudioVolume

  • setAudioVolume(volume: number): void
  • 设置输出音量,默认为 100

    throws

    RtcError

    example
    stream.setAudioVolume(50);
    

    Parameters

    • volume: number

      音量大小, 可设范围[0-100]

    Returns void

snapshot

  • 对当前流进行截屏,可用于页面展示或下载保存

    example
    stream.snapshot({filename: 'xxx.jpg'})
      .then((pic) => {
        console.log('截屏图像', pic);
      })
      .catch((err) => {
        console.log('截屏失败', err);
      });
    

    Parameters

    Returns Promise<string>

stop

  • stop(): void
  • 停止播放当前流

    example
    stream.stop();
    

    Returns void

unmuteAudio

  • unmuteAudio(): boolean
  • unmute 当前流的音频

    • 本地流调用此方法时,将向服务器推送音频数据,远端用户将收到 unmute-audio 的事件通知
    • 远端流调用此方法时,会从服务器拉取音频数据,并无事件通知远端用户
    example
    const result = stream.unmuteAudio();
    console.log(`stream's audio is muted ${stream.audioMuted}`);
    

    Returns boolean

    操作是否成功

unmuteVideo

  • unmuteVideo(): boolean
  • unmute 当前流的视频

    • 本地流调用此方法时,将向服务器推送视频数据,远端用户将收到 unmute-video 的事件通知
    • 远端流调用此方法时,会从服务器拉取视频数据,并无事件通知远端用户
    example
    const result = stream.unmuteVideo();
    console.log(`stream's video is muted ${stream.videoMuted}`);
    

    Returns boolean

    操作是否成功

Generated using TypeDoc