定义 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 浏览器。

Chrome 浏览器开启屏幕共享

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

Firefox 浏览器开启屏幕共享

localStream = AgoraRTC.createStream({
     streamID: uid,
     audio: false,
     video: false,
     screen: true,
     mediaSource: "screen",
   });

完整的网页端屏幕共享指南,请参考进行屏幕共享

Note:

  • 不要同时将 videoscreen 设置为 true

  • 使用 Firefox 浏览器屏幕共享功能时,请确保 screen 属性设置为 true,并且通过 mediaSource 指定屏幕共享类型。

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 字节。

Optional extensionId

extensionId: string

Chrome 插件 ID

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

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

Note:

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

Optional mediaSource

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

Firefox 浏览器的屏幕共享模式

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

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

详细用法见Firefox 屏幕共享

Optional microphoneId

microphoneId: string

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

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

Optional mirror

mirror: boolean

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

默认为 true。建议在使用前置摄像头时开启,使用后置摄像头时关闭。

Optional screen

screen: boolean

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

Optional streamID

streamID: number | string

音视频流 ID

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

video

video: boolean

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

Optional videoSource

videoSource: MediaStreamTrack

指定音视频流的视频源

Note:

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