自定义音频采集和渲染
- Unity
更新时间不可用
AdjustCustomAudioPlayoutVolume
调节自定义音频采集轨道在本地播放的音量。
public abstract int AdjustCustomAudioPlayoutVolume(uint trackId, int volume);调用该方法设置音频在本地播放的音量后,如果你想重新调整音量,你可以再次调用该方法。
注: 在调用该方法前,请确保你已经调用 CreateCustomAudioTrack 方法创建自定义音频采集轨道。
参数
| 参数名 | 描述 |
|---|---|
trackId | 音频轨道 ID。将该参数设置为调用 CreateCustomAudioTrack 方法返回的自定义音频轨道 ID。 |
volume |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
AdjustCustomAudioPublishVolume
调节自定义音频采集轨道在远端播放的音量。
public abstract int AdjustCustomAudioPublishVolume(uint trackId, int volume);调用该方法设置音频在远端播放的音量后,如果你想重新调整音量,你可以再次调用该方法。
注: 在调用该方法前,请确保你已经调用 CreateCustomAudioTrack 方法创建自定义音频采集轨道。
参数
| 参数名 | 描述 |
|---|---|
trackId | 音频轨道 ID。将该参数设置为调用 CreateCustomAudioTrack 方法返回的自定义音频轨道 ID。 |
volume |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
CreateCustomAudioTrack
创建一个自定义音频采集轨道。
public abstract uint CreateCustomAudioTrack(AUDIO_TRACK_TYPE trackType, AudioTrackConfig config);如需在频道中发布自定义采集音频,可参考以下步骤:
- 调用该方法创建音频轨道并获得音频轨道 ID。
- 调用 JoinChannel [2/2] 加入频道时,将 ChannelMediaOptions 中的
publishCustomAudioTrackId设置为你想要发布的音频轨道 ID,并将publishCustomAudioTrack设置为 true。 - 调用 PushAudioFrame 将
trackId指定为步骤 2 中指定的音频轨道 ID,即可实现在频道内发布对应的自定义音频源。
注: 该方法需要在加入频道前调用。
参数
| 参数名 | 描述 |
|---|---|
trackType | 自定义音频轨道类型。详见 AUDIO_TRACK_TYPE。 注: 如指定 |
config | 自定义音频轨道配置。详见 AudioTrackConfig。 |
返回值
- 方法调用成功,返回音频轨道 ID 作为该音频轨道的唯一标识。
- 方法调用失败,返回 0xffffffff。详见错误码了解详情和解决建议。
所属接口类
DestroyCustomAudioTrack
销毁指定的音频轨道。
public abstract int DestroyCustomAudioTrack(uint trackId);参数
| 参数名 | 描述 |
|---|---|
trackId | 调用 CreateCustomAudioTrack 方法返回的自定义音频轨道 ID。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
所属接口类
EnableCustomAudioLocalPlayback
设置是否在本地播放外部音频源。
public abstract int EnableCustomAudioLocalPlayback(uint trackId, bool enabled);调用该方法设置在本地播放外部采集的音频源后,如需停止本地播放,可以再次调用该方法并设置 enabled 为 false。
你可以调用 AdjustCustomAudioPlayoutVolume 调节自定义音频采集轨道在本地播放的音量。
注: 在调用该方法前,请确保你已经调用 CreateCustomAudioTrack 方法创建自定义音频采集轨道。
参数
| 参数名 | 描述 |
|---|---|
trackId | 音频轨道 ID。将该参数设置为调用 CreateCustomAudioTrack 方法返回的自定义音频轨道 ID。 |
enabled |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
所属接口类
PullAudioFrame
拉取远端音频数据。
public abstract int PullAudioFrame(AudioFrame frame);调用该方法后,App 会采取主动拉取的方式获取远端已解码和混音后的音频数据,用于音频播放。
注: 该方法和 OnPlaybackAudioFrame 回调均可用于获取远端混音后的音频播放数据。在调用 SetExternalAudioSink 开启外部音频渲染后,App 将无法从 OnPlaybackAudioFrame 回调中获得数据。因此,请根据实际的业务需求在该方法和 OnPlaybackAudioFrame 回调之间进行选择。二者的处理机制不同,具体区别如下:
- 调用该方法后,App 会主动拉取音频数据。通过设置音频数据,SDK 可以调整缓存,帮助 App 处理延时,从而有效避免音频播放抖动。
- 注册 OnPlaybackAudioFrame 回调后,SDK 通过该回调将音频数据传输给 App。App 在处理音频帧的延迟时,可能会导致音频播放抖动。
该方法仅用于拉取远端混音后的音频播放数据,如需获取采集的原始音频数据、混音前每条拉流单独的原始音频播放数据等,可以通过调用 RegisterAudioFrameObserver 注册相应的回调。
调用时机
该方法需要在加入频道后调用。
调用该方法前,你需要调用 SetExternalAudioSink(enabled: true) 开启并设置外部渲染。
参数
| 参数名 | 描述 |
|---|---|
frame | 指向 AudioFrame 的指针。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
PushAudioFrame
推送外部音频帧。
public abstract int PushAudioFrame(AudioFrame frame, uint trackId = 0);调用该方法通过音频轨道推送外部音频帧。
调用时机
调用该方法推送外部音频数据前,请先进行以下操作:
- 调用 CreateCustomAudioTrack 创建音频轨道并获得音频轨道 ID。
- 调用 JoinChannel [2/2] 加入频道时,将 ChannelMediaOptions 中的
publishCustomAudioTrackId设置为你想要发布的音频轨道 ID,并将publishCustomAudioTrack设置为 true。
参数
| 参数名 | 描述 |
|---|---|
frame | 外部音频帧。详见 AudioFrame。 |
trackId |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
SetExternalAudioSink
设置外部音频渲染。
public abstract int SetExternalAudioSink(bool enabled, int sampleRate, int channels);调用该方法开启外部音频渲染后,你可以调用 PullAudioFrame 拉取远端音频数据。App 可以对拉取到的原始音频数据进行处理后再渲染,获取想要的音频效果。
注: 调用该方法开启外部音频渲染后,App 将无法从 OnPlaybackAudioFrame 回调中获得数据。
适用场景
该方法适用于需要自行渲染音频的场景。
调用时机
该方法需要在加入频道前调用。
参数
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
所属接口类
SetExternalAudioSource
设置外部音频采集参数。
public abstract int SetExternalAudioSource(bool enabled, int sampleRate, int channels, bool localPlayback = false, bool publish = true);废弃
弃用: 该方法已废弃,请改用 CreateCustomAudioTrack。
调用时机
该方法需要在加入频道前调用。
参数
返回值
- 0:方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。