LocalVideoTrack 类
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,
}
}
参数
参数 | 描述 |
---|---|
videoSender | YUV 格式视频源对象。详见 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,
}
}
参数
参数 | 描述 |
---|---|
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))
}
参数
参数 | 描述 |
---|---|
enable | 开启或关闭本地视频轨道:
|
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: 方法调用失败。