6 package com.netease.nimlib.sdk.avchat.video;
8 import android.os.SystemClock;
13 import com.
netease.nrtc.sdk.video.ExternalVideoCapturer;
14 import com.
netease.nrtc.sdk.video.IVideoCapturer;
17 import com.
netease.nrtc.utility.video.VideoUtils;
33 public abstract void startCapture(
int width,
int height,
int frameRate);
40 public abstract void stopCapture()
throws InterruptedException;
70 if (observer != null) {
81 if (observer != null) {
121 NimLog.e(
"AVChatExternalVideoCapturer",
"data is null");
125 if (data.length < dataLen || VideoUtils.calcBufferSize(format, width, height) != data.length) {
126 NimLog.e(
"AVChatExternalVideoCapturer",
"Illegal data length!");
131 VideoFrame.Buffer buffer = VideoFrame.asBuffer(data, format, width, height);
132 VideoFrame videoFrame =
new VideoFrame(buffer, rotation, timeStamp);
133 if (observer != null) {
134 ret = observer.onFrameCaptured(videoFrame, frameRate, mirror);
137 videoFrame.release();
138 }
catch (IllegalAccessException e) {
139 NimLog.e(
"AVChatExternalVideoCapturer",
" onByteBufferFrameCaptured " + e);
abstract void startCapture(int width, int height, int frameRate)
开始预览
IVideoCapturer asVideoCapturer()
void onCapturerStopped()
外部调用,用于通知SDK外部已经停止视频数据提交
void onCapturerStarted(boolean success)
外部调用,用于通知SDK外部是否已经成功开启视频数据提交
abstract void changeCaptureFormat(int width, int height, int frameRate)
修改采集的参数
int onByteBufferFrameCaptured(byte[] data, int dataLen, int width, int height, int rotation, int frameRate, int format, long timeStamp, boolean mirror)
外部调用,用于提交每一帧视频数据
abstract void dispose()
销毁
abstract void stopCapture()
关闭预览