LocalVideoTrack 类

  • Go

更新时间不可用

LocalVideoTrack 类提供本地视频轨道的基本方法。你可以通过 PublishVideo 方法发布一个或多个视频轨道。

NewCustomVideoTrackFrame

Go
func NewCustomVideoTrackFrame(videoSender *VideoFrameSender) *LocalVideoTrack {
    cTrack := C.agora_service_create_custom_video_track_frame(agoraService.service, videoSender.cSender)
    if cTrack == nil {
        return nil
    }
    return &LocalVideoTrack{
        cTrack: cTrack,
    }
}
创建本地视频轨道对象,包含一个发送 YUV 格式视频数据的视频源。该轨道对象可用于发送 YUV 格式视频数据。

参数

参数描述
videoSenderYUV 格式视频源对象。详见 VideoFrameSender。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

NewCustomVideoTrackEncoded

Python
func NewCustomVideoTrackEncoded(videoSender *VideoEncodedImageSender, senderOptions *VideoEncodedImageSenderOptions) *LocalVideoTrack {
    cSenderOptions := C.sender_options{}
    cptrSenderOptions := &cSenderOptions
    if senderOptions != nil {
        cSenderOptions.cc_mode = C.int(senderOptions.CcMode)
        cSenderOptions.codec_type = C.int(senderOptions.CodecType)
        cSenderOptions.target_bitrate = C.int(senderOptions.TargetBitrate)
    } else {
        cptrSenderOptions = nil
    }
    cTrack := C.agora_service_create_custom_video_track_encoded(agoraService.service, videoSender.cSender, cptrSenderOptions)
    if cTrack == nil {
        return nil
    }
    return &LocalVideoTrack{
        cTrack: cTrack,
    }
}
创建本地视频轨道对象,包含一个发送编码视频数据的视频源。该轨道对象可用于发送已编码的视频数据,例如 H.264 或 VP8 格式的编码数据。

参数

参数描述
videoSender发送编码视频数据的视频源。详见 VideoEncodedImageSender。
senderOptions视频轨道设置。详见 VideoEncodedImageSenderOptions。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

SetEnabled

Go
func (track *LocalVideoTrack) SetEnabled(enable bool) {
    if track.cTrack == nil {
        return
    }
    cEnable := 0
    if enable {
        cEnable = 1
    }
    C.agora_local_video_track_set_enabled(track.cTrack, C.int(cEnable))
}
开启或关闭本地视频轨道。本地视频轨道开启之后,SDK 可以采集、处理和编码本地视频。

参数

参数描述
enable

开启或关闭本地视频轨道:

  • false: 关闭本地视频轨道。
  • true: 开启本地视频轨道,
表格内容超出当前宽度,可横向滚动查看更多列。

SetVideoEncoderConfiguration

Go
func (track *LocalVideoTrack) SetVideoEncoderConfiguration(cfg *VideoEncoderConfiguration) int {
    cCfg := C.struct__video_encoder_config{}
    C.memset(unsafe.Pointer(&cCfg), 0, C.sizeof_struct__video_encoder_config)
    cCfg.codec_type = C.int(cfg.CodecType)
    cCfg.dimensions.width = C.int(cfg.Width)
    cCfg.dimensions.height = C.int(cfg.Height)
    cCfg.frame_rate = C.int(cfg.Framerate)
    cCfg.bitrate = C.int(cfg.Bitrate * 1000)
    cCfg.min_bitrate = C.int(cfg.MinBitrate * 1000)
    cCfg.orientation_mode = C.int(cfg.OrientationMode)
    cCfg.degradation_preference = C.int(cfg.DegradePreference)
    return int(C.agora_local_video_track_set_video_encoder_config(track.cTrack, &cCfg))
}
设置视频编码属性。

参数

参数描述
cfg视频编码参数配置,详见 VideoEncoderConfiguration。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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