Options
All
  • Public
  • Public/Protected
  • All
Menu

Class LocalStream

本地流,可用于本地预览,也可用 client 进行发布

Hierarchy

Index

Properties

audioMuted

audioMuted: boolean = false

当前流是否 mute 了音频

id

id: string

当前流ID

Readonly mediaStream

mediaStream: MediaStream

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

videoMuted

videoMuted: boolean = false

当前流是否 mute 了视频

Methods

addTrack

  • addTrack(track: MediaStreamTrack): void
  • 添加一条媒体轨道(音轨或视轨)到当前流

    注:

    1. 若创建本地流时,audio 为 false,不可添加音轨,video 为 false 时,不可添加视轨
    example
    stream.addTrack(track);

    Parameters

    • track: MediaStreamTrack

      媒体轨道

    Returns void

destroy

  • destroy(): void
  • 销毁当前流,一般在本地流不再被使用时,可调用此方法销毁,解除摄像头或麦克风设备的占用。

    注:远端流,不需要手动调用此方法

    example
    stream.destroy();

    Returns void

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

init

  • init(): Promise<void>
  • 初始化本地流对象,将读取麦克风、摄像头、屏幕共享等来初始化媒体流

    example
    const stream = createStream({audio: true, video: true, screen: false});
    stream
      .init()
      .then(() => {
        client.publish(stream); // 发布本地流
      })
      .catch((err) => {
        console.log(`初始化本地流失败 ${err}`);
      })

    Returns Promise<void>

muteAudio

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

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

    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: HTMLElement | string, opts?: PlayOptions): Promise<void>
  • 播放当前流

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

    RtcError

    Parameters

    • container: HTMLElement | string

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

    • Optional opts: PlayOptions

      其他播放参数,参见PlayOptions

    Returns Promise<void>

removeTrack

  • removeTrack(track: MediaStreamTrack): void
  • 从当前流中删除一条媒体轨道(音轨或视轨)

    example
    stream.removeTrack(track);

    Parameters

    • track: MediaStreamTrack

      媒体轨道

    Returns void

replaceTrack

  • replaceTrack(track: MediaStreamTrack): MediaStreamTrack | undefined
  • 替换当前流中的媒体轨道

    注:

    1. 替换视频时,请使用与原轨道相同的分辨率的媒体轨道
    2. 返回值为当前流中相同类型的媒体轨道,此媒体轨道仍可用(占用音频设备或视频设备),请自行决定是否调用其 stop 方法释放设备
    example
    const oldTrack = stream.replaceTrack(track);
    oldTrack.stop();

    Parameters

    • track: MediaStreamTrack

      新媒体轨道

    Returns MediaStreamTrack | undefined

resume

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

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

    Returns Promise<void>

setScreenProfile

  • 设置当前流(屏幕共享时)视频的 Profile,默认 '1080p' 注:请务必在调用 init 方法之前,设置屏幕共享流的 Profile,否则无法生效。

    example
    stream.setScreenProfile('720p');
    stream.init().catch((err) => {
      console.log(`初始化屏幕共享流失败 ${err}`);
    });

    Parameters

    Returns void

setVideoProfile

  • 设置当前流视频的 Profile,默认 '480p'

    example
    stream.setVideoProfile('720p');

    stream.setVideoProfile({width: 640, height: 480, framerate: 15, bitrate: 500});

    Parameters

    Returns void

stop

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

    example
    stream.stop();

    Returns void

switchDevice

  • 切换音视频设备

    example
    stream.switchDevice('audio', 'xxxxxxx')
      .then(() => {
        console.log('切换设备成功');
      })
      .catch((err) => {
        console.log(`切换设备失败:${err}`);
      });
    reject

    RtcError

    Parameters

    Returns Promise<void>

switchImage

  • switchImage(file: string | File): Promise<void>
  • 切换图片 - 使用图片生成视频,并将当前流的视频使用其代替

    example
    const imgAddr = 'https://a.b.c/d.jpg';
    stream.switchImage(imgAddr)
      .then(() => {
        console.log('切换图片成功')
      })
      .catch((err) => {
        console.error(`切换图片失败:${err}`);
      });
    reject

    RtcError

    Parameters

    • file: string | File

      图片地址或图片文件

    Returns Promise<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

    操作是否成功

Static use

  • 加载流插件,使用插件功能

    Parameters

    Returns void

Generated using TypeDoc