Interface ILocalAudioTrack
基础本地音频轨道,提供了本地音频轨道的主要功能。
可以通过 AgoraRTC.createCustomAudioTrack 来获取。
-
通过麦克风采集到的本地音频轨道对象 MicrophoneAudioTrack 继承于此接口,并在本接口的基础上提供了一些麦克风独有的功能。
-
通过音频文件获取到的本地音频轨道对象 BufferSourceAudioTrack 继承于此接口,并在本接口的基础上提供了一些音频文件独有的功能。
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
getMediaStreamTrack(): MediaStreamTrack
获取浏览器原生的 MediaStreamTrack 对象。
返回值
一个 MediaStreamTrack 对象。
getRTCRtpTransceiver
getRTCRtpTransceiver(type?: StreamType): RTCRtpTransceiver | undefined
获取当前轨道的 RTCRtpTransceiver 实例。
该方法目前主要用于视频流的端到端加密(Beta)。
如果 SDK 发生断线重连,当前轨道对应的 RTCRtpTransceiver
实例可能会发生变化。你可以通过以下回调来获取新的 RTCRtpTransceiver
实例:
参数
参数名 | 描述 |
---|---|
type: StreamType | 视频流的类型。详见 StreamType。 |
返回值
当前轨道的 RTCRtpTransceiver
实例。
getStats
getTrackId
getTrackLabel
getTrackLabel(): string
获取本地轨道的来源描述。
返回值
可能返回以下值:
- 如果是通过
createMicrophoneAudioTrack
或createCameraVideoTrack
创建的轨道,返回 MediaDeviceInfo.label 字段。 - 如果是通过
createScreenVideoTrack
创建的轨道,返回屏幕共享的sourceId
。 - 如果是
createCustomAudioTrack
或createCustomVideoTrack
创建的轨道,返回 MediaStreamTrack.label 字段。
getVolumeLevel
off
on
on(event: "track-updated", listener: typeof event_track_updated): void
参数
参数名 | 描述 |
---|---|
event: "track-updated" | 事件名称。 |
listener: typeof event_track_updated | 详见 track-updated。 |
返回值
on(event: "track-ended", listener: typeof event_track_ended): void
参数
参数名 | 描述 |
---|---|
event: "track-ended" | 事件名称。 |
listener: typeof event_track_ended | 详见 track-ended。 |
返回值
once
pipe
play
removeAllListeners
setAudioFrameCallback
setAudioFrameCallback(audioFrameCallback: null | function, frameSize?: 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: number | 每次回调的 |
返回值
setEnabled
setMuted
setPlaybackDevice
setPlaybackDevice(deviceId: string): Promise<void>
参数
参数名 | 描述 |
---|---|
deviceId: string | 设备 ID,可以通过 getPlaybackDevices 方法获取。 |
事件名称。