io.agora.rtc.AgoraLocalAudioTrack类 参考
- Java
更新时间不可用
构造及析构函数说明
AgoraLocalAudioTrack()
io.agora.rtc.AgoraLocalAudioTrack.AgoraLocalAudioTrack(long cptr)构造函数。
成员函数说明
adjustPublishVolume()
native int io.agora.rtc.AgoraLocalAudioTrack.adjustPublishVolume(int volume)调整音频在远端播放的音量。
| 参数名 | 描述 |
|---|---|
volume | 音频的远端播放音量。取值范围为 [1,100],其中默认值为 100,表示原始音量。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
clearSenderBuffer()
native int io.agora.rtc.AgoraLocalAudioTrack.clearSenderBuffer()清除当前音频发送缓冲区。
自从
4.4.30
如果你不再需要当前音频发送缓冲区中的数据,可以调用该方法清除缓冲区。例如,用户给 AI 提了个问题,AI 正在通过 SDK 传输音频给用户解答,此时 SDK 的音频发送缓冲区中不断有数据进出。当用户打断 AI 的回复并提出另一个问题时,你可以调用该方法,让 SDK 清除当前未发送出去的缓冲数据,以便快速缓冲 AI 对新话题的回答。
返回值
- ≥ 0: 方法调用成功,返回被清除的音频帧数量。
- < 0: 方法调用失败。
destroy()
void io.agora.rtc.AgoraLocalAudioTrack.destroy()析构函数。
destroyStats()
native void io.agora.rtc.AgoraLocalAudioTrack.destroyStats(LocalAudioTrackStats stats)getPublishVolume()
native int io.agora.rtc.AgoraLocalAudioTrack.getPublishVolume(Out volume)获取当前音频在远端播放的音量。
| 参数名 | 描述 |
|---|---|
volume | 音频在远端的播放音量。 |
返回值
- ≥ 0: 方法调用成功,并返回当前音频在远端播放的音量。
- < 0: 方法调用失败。
getState()
native int io.agora.rtc.AgoraLocalAudioTrack.getState()查询本地音频状态。
返回值
本地音频状态。
getStats()
native LocalAudioTrackStats io.agora.rtc.AgoraLocalAudioTrack.getStats()获取本地音频质量数据。
返回值
本地音频质量数据。
isEnabled()
native int io.agora.rtc.AgoraLocalAudioTrack.isEnabled()查询本地音频轨道是否已启用。
返回值
本地音频轨道是否已启用:
- true: 是
- false: 否
setEnabled()
native void io.agora.rtc.AgoraLocalAudioTrack.setEnabled(int enable)启用或禁用本地音频轨道。
启用本地音频轨道后,SDK 会允许本地音频采集、处理和编码。
| 参数名 | 描述 |
|---|---|
enable | 是否启用本地音频轨道:
|
setMaxBufferedAudioFrameNumber()
native void io.agora.rtc.AgoraLocalAudioTrack.setMaxBufferedAudioFrameNumber(int number)设置音频发送缓冲区的最大容量。
自从
4.4.30
在 AI 交互等应用场景中,发送端发送音频帧的频率可能不均匀,例如有时每 20 ms 发送 1 帧数据、有时每 20 ms 发送 3 帧数据。如果 SDK 按照实际的发送频率去发送给声网服务器,则接收端可能会有卡顿、丢帧等不良体验。为优化音频传输性能,SDK 设置了音频发送缓冲区,不论发送端实际发送音频帧的频率是多少,SDK 都会将数据存放在音频发送缓冲区。待音频发送缓冲区中的数据达到允许发送的最小时长后,SDK 再开始按照 10 ms 每帧的频率发送数据给接收端。
SDK 默认的音频发送缓冲区最大容量是 6000,表示支持存放最多 6000 帧数据,即 60 s 的数据。如果你需要更大的缓冲区容量,你可以调用该方法进行调整。如果你还需要设置音频发送缓冲区允许发送的最小数据时长,调用 setSendDelayMs 方法。
注解
该方法需要在 publishAudio 方法之前调用。
| 参数名 | 描述 |
|---|---|
number | 缓冲区存放的最大音频帧数。例如,填入 6000 则表示 6000 帧音频数据。 |
setSendDelayMs()
native void io.agora.rtc.AgoraLocalAudioTrack.setSendDelayMs(int delayMs)设置音频发送缓冲区允许发送的最小数据时长。
自从
4.4.30
SDK 默认允许发送的最小数据时长为 160 ms,即 SDK 会等音频发送缓冲区存满 160 ms 的数据后将数据发送给接收端,这会带来如下影响:
- 如果发送端一次发送的数据大于或等于 160 ms,例如 800 ms,则 SDK 会立即按照每帧 10 ms 的频率发送数据给接收端。
- 如果发送端一次发送的数据小于 160 ms,例如 100 ms,则 SDK 会等缓冲区数据达到 160 ms 后,再按照 10 ms 每帧的频率发送数据给接收端。这就会造成至多 60 ms 的延迟。
你可以根据实际业务需求,调用该方法调整缓冲区允许发送的最小数据时长。
| 参数名 | 描述 |
|---|---|
delayMs | 缓冲区允许发送的最小数据时长(ms)。该参数需要设置为 10 的倍数,取值范围为大于 0 且小于 setMaxBufferedAudioFrameNumber 方法中 number 参数值的 10 倍。 |
该类的文档由以下文件生成:
- AgoraLocalAudioTrack.java