Android端自定时视频采集

Android端自己把视频帧发送到web端,但是Android端无界面渲染(不需要显示web端画面,也不需要显示Android预览画面)。
mRtcEngine.setExternalVideoSource(true, false, true);
public void onFrame(byte[] nv21,int widh,int height){
AgoraVideoFrame videoFrame = new AgoraVideoFrame();
videoFrame.buf = nv21;
videoFrame.format = AgoraVideoFrame.FORMAT_NV21;
videoFrame.timeStamp = System.currentTimeMillis();
videoFrame.stride = width;
videoFrame.height = height;
VideoCommApp.mRtcEngine.pushExternalVideoFrame(videoFrame);
}
这样不能实现远端显示我推送的画面么?

你要实现的功能是什么?让web端看到android端自采集的画面?
如果是直播模式,那么打开互通接口即可,无需做额外配置,请参考:https://docs.agora.io/cn/Interactive%20Broadcast/interop_android?platform=Android

一对一视频通话

模式采用的mRtcEngine.setChannelProfile(Constants.CHANNEL_PROFILE_COMMUNICATION);

那为什么要用自采集呢?sdk采集不能满足你们的业务需求?

我发现视频的时候相机在其他地方用起来状态管理非常复杂,所以现在的设计是在一个地方管理的相机打开和关闭,但是数据是发送到各个模块,所以要用自采集。

用Camera2 API我会获取到数据,这个数据不单单用于sdk视频。只能使用你们的自采集方案

好的。
那现在的问题是什么?远端收不到你推过去的视频流?
你调试看下 pushExternalVideoFrame 方法的返回值是什么?

返回值为true,但是实际Web端显示不了画面。

你提供下频道号和具体时间点,我这边看看

频道号是变得,不过你可以直接看B01A190100032_ 前缀的,后面是三个字母,比如B01A190100032_ax5,时间是8月14号的上午9点半到12点。

搜不到。。。要不你直接拿sdk log给我,安卓端默认路径为 /sdcard/{App 的包名}/agorasdk.log。

agorasdk.zip (3.8 KB) 都在这里了

日志里都没有看到加入频道成功哦,好像是日志不全,你是不是打印到这儿了:

INFO    (15:24: 5:494 |    0)  27750; [rp] {"rtc.log_file":"mnt/sdcard/agora.txt"}

agora.zip (13.2 KB) 嗯,这里还有

两个时间不一致 你稍等下,我上传一份完整的Log

问题可能发生在我们设备切换的问题,不好意思,暂时这样,感谢指导。

好的,不客气。

你好,还是会偶现出现Android端已经调用了mRtcEngine.joinChannel(null, roomId, null, 0); 但是在IRtcEngineEventHandler回调迟迟没有收到onJoinChannelSuccess 的回调消息。导致web端没画面,网络一切正常,麻烦你有时间帮忙看下,感谢。agoraLog.zip (41.9 KB)

joinChannel 返回值为0