M300飞机通道是如何使用的?
Completed我使用的是官方的Simple demo。在视频流这一块很混乱。我目前的使用的是M300无人机,挂载一个payload是2.2.1。该payload相机是使用的CUS H264编码。我沿用官方的demo。有两个VideoFeedView。他们分别是primaryVideoFeed和fpvVideoFeed。以此来区分第一源和第二源。目前预想就是把payload的相机当成第一源,fpv当成第二源,而且编码格式我都知道,所以不再判断编码格式。
这是300的通道分配。
这是第一源和第二源的数据注册。
数据注册函数分别针对第一源和第二源写了两个不同的函数,主要是第一源是CUS H264,需要改一下接码。
第一源的视频流数据不再用getPrimaryVideoFeed,而是用的provideTranscodedVideoFeed。
而且也重写了payload的方法:(第三个参数我设置是DJICodecManager.VideoSource.CAMERA)
payload.setVideoDataReceivedCallback(new Payload.VideoDataReceivedCallback() {
@Override
public void onVideoDataReceived(byte[] var1, int var2) {
if (codecManager != null) {
codecManager.sendDataToDecoder(var1, var2, DJICodecManager.VideoSource.CAMERA);
}
}
});
现在问题是:我获取到了相机的画面,但是每几秒就会黑屏一秒,然后再出现,而FPV则是黑的画面。不知道这个是为什么?
还有就是,什么是设置视频源的优先级?
再比如一些函数,我在官方的API里面找不到(MSDK和UXSDK):
它是DJICodecManager.class下的一个方法。但是我不知道它是干嘛的
-
resetKeyFrame是强制申请出一帧I帧,用于恢复画面的。看起来没什么问题,你的chosen 0 和 1分别对应得是哪两个视频源?使用DJI PIlot 2 app是否正常?这样可以确认Payload是否有问题。 ![](https://djisdksupport.zendesk.com/attachments/token/Xgrxq9vJlyQAXZBbtws5uTlWk/?name=image.png) -
我建议你直接用MSDK v5吧,别用MSDK v4了,用这个demo。https://github.com/dji-sdk/Mobile-SDK-Android-V5
Please sign in to leave a comment.
Comments
3 comments