AudioPcmDataSender 类

  • Go

更新时间不可用

AudioPcmDataSender 类。

NewAudioPcmDataSender

Go
func (mediaNodeFactory *MediaNodeFactory) NewAudioPcmDataSender() *AudioPcmDataSender {
    sender := C.agora_media_node_factory_create_audio_pcm_data_sender(mediaNodeFactory.cFactory)
    if sender == nil {
        return nil
    }
    return &AudioPcmDataSender{
        cSender: sender,
    }
}
创建一个 PCM 数据发送模块。该方法创建一个 AudioPcmDataSender 对象,可用于 NewCustomAudioTrackPcm 方法。

返回值

  • AudioPcmDataSender 对象:方法调用成功。
  • nil: 方法调用失败。

SendAudioPcmData

Go
func (sender *AudioPcmDataSender) SendAudioPcmData(frame *AudioFrame) int {
    cData := C.CBytes(frame.Buffer)
    defer C.free(cData)
    return int(C.agora_audio_pcm_data_sender_send(sender.cSender, cData,
        C.uint(frame.RenderTimeMs), C.uint(frame.SamplesPerChannel),
        C.uint(frame.BytesPerSample), C.uint(frame.Channels),
        C.uint(frame.SamplesPerSec)))
}
将 PCM 格式的音频数据发送到本地音频轨道。

参数

参数描述
frameAudioFrame 对象,包含需要发送的 PCM 音频数据。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

Release

Go
func (sender *AudioPcmDataSender) Release() {
    if sender.cSender == nil {
        return
    }
    C.agora_audio_pcm_data_sender_destroy(sender.cSender)
    sender.cSender = nil
}
释放 AudioPcmDataSender 对象。