human: 如何处理七牛云的实时音视频QNCustomVideoTrack

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNCustomVideoTrack

#  QNCustomVideoTrack

最近更新时间: 2023-04-21 12:37:15

本地视频自定义导入 Track 类，可通过
[QNRTC.createCustomVideoTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8732)
方式创建该 Track 对象

Hierarchy

  * [QNTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8693/QNTrack)
    * [QNLocalTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8662/QNLocalTrack)
      * [QNLocalVideoTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8663/QNLocalVideoTrack)
        * [QNCameraVideoTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8640/QNCameraVideoTrack)
        * [QNScreenVideoTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8687/QNScreenVideoTrack)
        * QNCustomVideoTrack 
      * [QNLocalAudioTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8660/QNLocalAudioTrack)
        * [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8667/QNMicrophoneAudioTrack)
        * [QNCustomAudioTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8646/QNCustomAudioTrack)
    * [QNRemoteTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8676/QNRemoteTrack)
      * [QNRemoteVideoTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8680/QNRemoteVideoTrack)
      * [QNRemoteAudioTrack](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8674/QNRemoteAudioTrack)

Index

Core Methods

  * getTrackID
  * getUserID
  * getTag
  * isAudio
  * isVideo
  * isMuted
  * setMuted
  * destroy
  * sendSEI[1/4]
  * sendSEI[2/4]
  * sendSEI[3/4]
  * sendSEI[4/4]
  * setVideoEncoderConfig
  * setVideoFrameListener
  * pushVideoFrame
  * play

Core Methods

getTrackID

  * String getTrackID()
  * 获取 TrackID，仅当发布成功后，才可以获取到有效的 TrackID

Returns String

getUserID

  * String getUserID()
  * 获取 UserID

Returns String

getTag

  * String getTag()
  * 获取 Tag

Returns String

isAudio

  * boolean isAudio()
  * 是否为音频 Track

Returns boolean

isVideo

  * boolean isVideo()
  * 是否为视频 Track

Returns boolean

isMuted

  * boolean isMuted()
  * 该 Track 是否处于静默状态

Returns boolean

setMuted

  * void setMuted(boolean muted)
  * 设置是否静默该 track，静默后，SDK 将会发送静默帧数据

当静默状态改变后，远端用户将会收到
[QNTrackInfoChangedListener.onMuteStateChanged](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8820)
的回调

Parameters

    * muted: boolean 

是否静默

destroy

  * void destroy()
  * 销毁本地创建的 Track

sendSEI[1/4]

  * void sendSEI(String message, int repeatCount)
  * 发送 SEI

> 1\. SEI 信息会携带到视频的编码数据中，在 [CDN
> 转推](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8770/turn-the-
> cdn-push-android) 场景下，Track 处于正常发布状态时，调用该接口后，观众端即可使用支持解析 SEI 的播放器来获取对应的 SEI
> 信息。
>
> 2\. 单路流转推和多路流合流转推在发送 SEI 信息的使用姿势上存在差异，详情可参考 [SEI
> 发送指南](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8770)

> 该接口已废弃, 请使用 int sendSEI(byte[] message, int repeatCount)

Parameters

    * message: String 

消息内容

    * repeatCount: int 

重复次数，-1 为每一帧都发送

sendSEI[2/4]

  * void sendSEI(String message, byte[] uuid, int repeatCount)
  * 发送 SEI

> 1\. SEI 信息会携带到视频的编码数据中，在 [CDN
> 转推](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8770/turn-the-
> cdn-push-android) 场景下，Track 处于正常发布状态时，调用该接口后，观众端即可使用支持解析 SEI 的播放器来获取对应的 SEI
> 信息。
>
> 2\. 单路流转推和多路流合流转推在发送 SEI 信息的使用姿势上存在差异，详情可参考 [SEI
> 发送指南](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8770)

> 该接口已废弃, 请使用 int sendSEI(byte[] message, byte[] uuid, int repeatCount)

Parameters

    * message: String 

消息内容

    * uuid: byte[] 

唯一 ID；必须为 16 个字节

    * repeatCount: int 

重复次数，-1 为每一帧都发送

sendSEI[3/4]

  * int sendSEI(byte[] message, int repeatCount)
  * 发送 SEI

> 1\. SEI 信息会携带到视频的编码数据中，在 [CDN
> 转推](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8770/turn-the-
> cdn-push-android) 场景下，Track 处于正常发布状态时，调用该接口后，观众端即可使用支持解析 SEI 的播放器来获取对应的 SEI
> 信息。
>
> 2\. 单路流转推和多路流合流转推在发送 SEI 信息的使用姿势上存在差异，详情可参考 [SEI
> 发送指南](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8770)

Parameters

    * message: byte[] 

消息内容；最多为 4096 字节

    * repeatCount: int 

重复次数

Returns 调用返回值，详见
[QNErrorCode](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8652/QNErrorCode)

sendSEI[4/4]

  * int sendSEI(byte[] message, byte[] uuid, int repeatCount)
  * 发送 SEI

> 1\. SEI 信息会携带到视频的编码数据中，在 [CDN
> 转推](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8770/turn-the-
> cdn-push-android) 场景下，Track 处于正常发布状态时，调用该接口后，观众端即可使用支持解析 SEI 的播放器来获取对应的 SEI
> 信息。
>
> 2\. 单路流转推和多路流合流转推在发送 SEI 信息的使用姿势上存在差异，详情可参考 [SEI
> 发送指南](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8770)

Parameters

    * message: byte[]；最多为 4096 字节 

消息内容

    * uuid: byte[] 

唯一 ID；必须为 16 个字节

    * repeatCount: int 

重复次数

Returns 调用返回值，详见
[QNErrorCode](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8652/QNErrorCode)

setVideoEncoderConfig

  * void setVideoEncoderConfig([QNVideoEncoderConfig](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8701/QNVideoEncoderConfig) config)
  * 动态修改视频 Track 的编码参数（分辨率、帧率、码率等）

> 1\. 该接口用于在通话过程中动态修改视频的编码参数，若您无需修改，可在创建视频 Track 时通过对应的 TrackConfig 直接指定编码参数
>
> 2\. 建议修改时目标编码分辨率小于采集的分辨率。当目标编码分辨率大于采集分辨率时，SDK
> 会基于采集分辨率裁剪输出一个和目标编码分辨率宽高比相匹配，但小于等于采集分辨率的参数

Parameters

    * config: [QNVideoEncoderConfig](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8701/QNVideoEncoderConfig)

目标编码配置

setVideoFrameListener

  * void setVideoFrameListener([QNVideoFrameListener](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8704/QNVideoFrameListener) listener)
  * 设置视频数据监听

Parameters

    * listener: QNVideoFrameListener 

视频数据监听接口

pushVideoFrame

  * void pushVideoFrame([QNVideoFrame](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8703/QNVideoFrame) frame)
  * 推送自定义视频帧

支持导入的数据格式为 NV21 数据和纹理数据，使用方式可参考[外部导入视频
Track](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8767) 使用指南

Parameters

    * frame: QNVideoFrame 

视频帧

play

  * void play([QNRenderView](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8683/QNRenderView) view)
  * 设置预览窗口

Parameters

    * view: [QNRenderView](https://developer.qiniu.com/rtc/8649/QNCustomVideoTrack/8683/QNRenderView)

预览窗口

以上内容是否对您有帮助？