Interface IMicrophoneAudioTrack
本地麦克风音频轨道,继承于 LocalAudioTrack,在此之上提供了更换采集设备的功能。
可以通过 AgoraRTC.createMicrophoneAudioTrack 来获取。
Properties
enabled
enabled: boolean
本地轨道当前的启用状态。
isPlaying
isPlaying: boolean
媒体轨道是否正在页面上播放。
-
true
: 媒体轨道正在页面上播放。 -
false
: 媒体轨道没有在页面上播放。
muted
muted: boolean
本地媒体轨道当前的静音状态。
processorDestination
processorDestination: IAudioProcessor
自从 4.10.0
本地音频轨道上当前媒体处理链路的最终节点。
trackMediaType
trackMediaType: "audio" | "video"
媒体轨道的类型:
-
"audio"
: 音频轨道。 -
"video"
: 视频轨道。
Methods
close
getListeners
getMediaStreamTrack
getStats
getStats(): LocalAudioTrackStats
获取本地音频轨道的质量相关信息。
DEPRECATED自 v4.1.0 起废弃,请使用 AgoraRTCClient.getLocalVideoStats 和 AgoraRTCClient.getLocalAudioStats。
返回值
getTrackId
getTrackLabel
getVolumeLevel
off
on
once
pipe
play
removeAllListeners
setAudioFrameCallback
setAudioFrameCallback(audioFrameCallback: null | function, frameSize?: undefined | number): void
设置原始音频数据(PCM)回调。
设置成功后,SDK 会不断地将本地音频轨道的音频帧以 AudioBuffer 的形式通过回调返回。
你可以通过 frameSize
来设置每次回调中音频帧的大小。该设置也会影响回调的间隔,frameSize
越大,每次回调的音频数据越多,回调间隔越长。
track.setAudioFrameCallback((buffer) => {
for (let channel = 0; channel < buffer.numberOfChannels; channel += 1) {
// Float32Array with PCM data
const currentChannelData = buffer.getChannelData(channel);
console.log("PCM data in channel", channel, currentChannelData);
}
}, 2048);
// ....
// Stop getting the raw audio data
track.setAudioFrameCallback(null);
参数
参数名 | 类型 | 描述 |
---|---|---|
audioFrameCallback | null | function | 用于接收 AudioBuffer 的回调函数。设为 |
frameSize | undefined | number | 每次回调的 |
返回值
void
setDevice
setDevice(deviceId: string): Promise<void>
设置负责采集音频数据的麦克风设备。
在发布前和发布后均可调用此方法。
参数
参数名 | 类型 | 描述 |
---|---|---|
deviceId | string | 指定设备的设备 Id,可以通过 AgoraRTC.getMicrophones 获取。 |
返回值
Promise<void>
setEnabled
setEnabled(enabled: boolean): Promise<void>
自从 4.0.0
启用/禁用该轨道。
轨道禁用后,播放和发布都将被停止。
-
禁用轨道不会触发 LocalTrack.on("track-ended") 事件。
-
如果该轨道已发布,禁用轨道后,远端会触发 user-unpublished 事件。重新启用后,远端会触发 user-published 事件。
-
setEnabled
和setMuted
不能同时调用。
参数
参数名 | 类型 | 描述 |
---|---|---|
enabled | boolean | 是否启用该轨道:
|
返回值
Promise<void>
setMuted
setMuted(muted: boolean): Promise<void>
发送或暂停发送该轨道的媒体数据。
自从 4.6.0
如果该轨道已发布,调用 setMuted(true)
后,远端会触发 user-unpublished 事件。再调用 setMuted(false)
后,远端会触发 user-published 事件。
-
与 setEnabled 相比,调用该方法响应速度更快且不影响视频采集状态,详见 setEnabled 和 setMuted 有什么区别?。
-
setEnabled
和setMuted
不能同时调用。
参数
参数名 | 类型 | 描述 |
---|---|---|
muted | boolean | 是否发送该轨道的媒体数据:
|
返回值
Promise<void>
setPlaybackDevice
setPlaybackDevice(deviceId: string): Promise<void>
自从 4.1.0
注意事项:
-
自 v4.7.0 起,该方法不再生效。请改用 IRemoteAudioTrack.setPlaybackDevice。
-
该方法只支持桌面端的 Chrome 浏览器,其他浏览器调用将会抛出
NOT_SUPPORTED
错误。
设置本地播放远端音频流的设备(扬声器)。
参数
参数名 | 类型 | 描述 |
---|---|---|
deviceId | string | 设备 ID,可以通过 getPlaybackDevices 方法获取。 |
返回值
Promise<void>
事件名称。