定义 createStream 中的 spec 参数的接口。

创建音视频流

创建音视频流有两种方法:

设置 audiovideoscreen 属性

var stream = AgoraRTC.createStream({
  streamID: uid,
  audio:true,
  video:true,
  screen:false
});

设置 audioSourcevideoSource 属性

与前一种方法相比,设置 audioSourcevideoSource 属性可以指定创建的音视频流要使用的音视频 Track。使用这种方法可以在创建音视频流之前对音视频进行处理。

通过 mediaStream 方法从 MediaStreamTrack 获得音视频 Track,然后指定 audioSourcevideoSource,如下所示:

navigator.mediaDevices.getUserMedia(
    {video: true, audio: true}
).then(function(mediaStream){
    var videoSource = mediaStream.getVideoTracks()[0];
    var audioSource = mediaStream.getAudioTracks()[0];
    // 对 videoSource 和 audioSource 进行处理后
    var localStream = AgoraRTC.createStream({
        video: true,
        audio: true,
        videoSource: videoSource,
        audioSource: audioSource
    });
    localStream.init(function(){
        client.publish(localStream, function(e){
            //...
        });
    });
});

Note:

  • MediaStreamTrack 对象是指浏览器原生支持的 MediaStreamTrack 对象,具体用法和浏览器支持状况请参考 MediaStreamTrack API 说明

  • 目前音视频前处理功能仅支持 Chrome 浏览器。

Hierarchy

  • StreamSpec

Index

Properties

audio

audio: boolean

指定该音视频流是否包含音频资源

Optional audioProcessing

audioProcessing: object

指定是否开启音效处理

Type declaration

  • Optional AEC?: boolean

    声学回声消除

    默认为 true,即开启。如果你不需要启用声学回声消除,将 AEC 设为 false

    Note

    Safari 不支持此设置。

  • Optional AGC?: boolean

    自动增益控制

    默认为 true,即开启。如果你不需要启用自动增益控制,将 AGC 设为 false

    Note

    Safari 不支持此设置。

  • Optional ANS?: boolean

    自动噪声抑制

    默认为 true,即开启。如果你不需要启用自动噪声抑制,将 ANS 设为 false

    Note

    • Safari 不支持此设置。
    • 无论是否开启此设置,Firefox 都会启用噪声抑制。

Optional audioSource

audioSource: MediaStreamTrack

指定音视频流的音频源

Optional cameraId

cameraId: string

通过 getDevices 方法获取的摄像头设备 ID

获取的 ID 为 ASCII 字符,字符串长度大于等于 0 小于 256 字节。

当字符串长度为 0 时,该参数会被忽略。

Optional extensionId

extensionId: string

Chrome 插件 ID

ASCII 字符,字符串长度大于 0 小于 256 字节。

使用 Chrome 屏幕共享插件需要设置该属性,详见 Chrome 屏幕共享插件

Note

Chrome 72 及以后的版本支持无插件屏幕共享。如果你没有填写 extensionId,则默认使用无插件的屏幕共享方式;如果填写了 extensionId,则需使用插件共享屏幕。

Optional facingMode

facingMode: string

指定使用前置/后置摄像头来采集视频

在移动设备上,可以设置该参数选择使用前置或后置摄像头:

  • "user":前置摄像头
  • "environment":后置摄像头

Optional mediaSource

mediaSource: "screen" | "application" | "window"

Firefox 浏览器的屏幕共享模式

如果你使用的是 Firefox 浏览器,设置该属性可以开启屏幕共享:

  • "screen": (默认值)共享屏幕
  • "application": 共享某一个应用的所有窗口
  • "window": 共享某一个应用的某一个窗口

详细用法见Firefox 屏幕共享

Optional microphoneId

microphoneId: string

通过 getDevices 方法获取的麦克风设备 ID

获取的 ID 为 ASCII 字符,字符串长度大于等于 0 小于 256 字节。

当字符串长度为 0 时,该参数会被忽略。

Optional mirror

mirror: boolean

指定本地视频流在本地显示的时候是否要做镜像翻转(不适用于屏幕共享)

  • true:(默认)镜像。
  • false:不镜像。

我们建议在使用前置摄像头时镜像翻转,使用后置摄像头时不做镜像翻转。

Optional screen

screen: boolean

指定该音视频流是否包含屏幕共享功能,详见 进行屏幕共享

Optional screenAudio

screenAudio: boolean

指定该音视频流是否包含屏幕共享背景音功能

自从
   3.0.0

  • true:屏幕共享同时共享本地播放的背景音。
  • false:(默认)屏幕共享时不共享本地播放的背景音。

如需使用屏幕共享背景音功能,必须将 screen 也设为 true,同时我们建议将 audio 设为 false。如果 screenAudioaudio 都设置为 true,音视频流中只会包含本地播放的背景音。

Note

  • 该功能仅支持 Windows 平台 Chrome 浏览器 73 及以上版本。
  • 设置了 screenAudiotrue 后,还需要在屏幕共享的弹出框上,勾选分享音频才能真正生效。

Optional streamID

streamID: number | string

音视频流 ID

请将音视频流 ID 设置为与 uid 相同,可通过 Client.join 方法的回调获取。

video

video: boolean

指定该音视频流是否包含视频资源

Optional videoSource

videoSource: MediaStreamTrack

指定音视频流的视频源

Note

视频源如来自 canvas,需要在 canvas 内容不变时,每隔 1 秒重新绘制 canvas 内容,以保持视频流的正常发布。