AudioEncodedFrameSender 类

  • Go

更新时间不可用

AudioEncodedFrameSender 类

NewAudioEncodedFrameSender

Go
func (mediaNodeFactory *MediaNodeFactory) NewAudioEncodedFrameSender() *AudioEncodedFrameSender {
    sender := C.agora_media_node_factory_create_audio_encoded_frame_sender(mediaNodeFactory.cFactory)
    if sender == nil {
        return nil
    }
    return &AudioEncodedFrameSender{
        cSender: sender,
    }
}
创建一个已编码音频数据发送模块。该方法创建一个 AudioEncodedFrameSender 对象,可用于 NewCustomAudioTrackEncoded 方法。

返回值

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

SendEncodedAudioFrame

Go
func (sender *AudioEncodedFrameSender) SendEncodedAudioFrame(payload []byte, frameInfo *EncodedAudioFrameInfo) int {
    cData := C.CBytes(payload)
    defer C.free(cData)
    cFrameInfo := &C.struct__encoded_audio_frame_info{
        speech:              CIntFromBool(frameInfo.Speech),
        codec:               C.int(frameInfo.Codec),
        sample_rate_hz:      C.int(frameInfo.SampleRateHz),
        samples_per_channel: C.int(frameInfo.SamplesPerChannel),
        send_even_if_empty:  CIntFromBool(frameInfo.SendEvenIfEmpty),
        number_of_channels:  C.int(frameInfo.NumberOfChannels),
    }

    return int(C.agora_audio_encoded_frame_sender_send(
        sender.cSender, (*C.uint8_t)(cData),
        C.uint32_t(len(payload)), cFrameInfo))
}
将已编码的音频帧发送到本地音频轨道。

参数

参数描述
payload要发送的编码音频数据。
frameInfo音频帧信息,详见 EncodedAudioFrameInfo。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

Release

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