功能描述
实时视频传输过程中,Qtt SDK 通常会启动默认的视频模块进行采集和渲染。在以下场景中,你可能会发现默认的视频模块无法满足开发需求:
- app 中已有自己的视频模块
 
- 希望使用非 Camera 采集的视频源,如录屏数据
 
- 需要使用自定义的美颜库或有前处理库
 
- 某些视频采集设备被系统独占。为避免与其它业务产生冲突,需要灵活的设备管理策略
 
接口描述
  public class ChannelEngine {                   
 
 
 
 
 
 
 
 
         public int setExternalVideoSource(boolean enable, boolean useTexture);
         
 
 
 
         public int pushExternalVideoFrame(ExternalVideoFrame frame);
  }
  | 
 
  注:传输视频帧。详见ExternalVideoFrame
示例代码
N21数据格式使用方法
ExternalVideoFrame frame = new ExternalVideoFrame(); frame.buf = data;    frame.format = ExternalVideoFrame.FORMAT_NV21;   frame.stride = DEFAULT_CAPTURE_WIDTH;    frame.height = DEFAULT_CAPTURE_HEIGHT;   frame.rotation = 270;    frame.timeStamp = System.currentTimeMillis();   if (engine != null) {     engine.pushExternalVideoFrame(frame); }
   | 
 
TEXTURE_2D数据格式使用方法
ExternalVideoFrame frame = new ExternalVideoFrame(); frame.textureID = textureId;     frame.format = ExternalVideoFrame.FORMAT_TEXTURE_2D;  frame.transform = mTransform;    frame.stride = DEFAULT_CAPTURE_HEIGHT;   frame.height = DEFAULT_CAPTURE_WIDTH;    frame.timeStamp = System.currentTimeMillis();  if (engine != null) {     engine.pushExternalVideoFrame(frame);         }
   |