PSDK出现[PSDKDataDownloader_SendDataUpdata:538]警告,而MSDK开发的APP在进入与PSDK相关界面时PSDK负载就会掉线
已完成PSDK开发的相关负载设备,使用大疆Pilot连接稳定(遥控器自带或者手机版),连接时控制台无警告与错误,但是当使用MSDK开发的APP时出现[PSDKDataDownloader_SendDataUpdata:538]警告,且进入与PSDK操控相关的activity界面后,一段时间内PSDK会报连接出现异常,重新使用大疆Pilot并等待负载重新上线后,再用MSDK开发的APP负载连接就正常。求助出现警告的原因以及是否是开发过程中PSDK或者MSDK设置不当导致上述情况。
PSDK版本2.0,MSDK版本4.16.1(Android),无人机为M300rtk。
控制台警告信息:
-
由于你得PSDK设备和DJI Pilot搭配使用正常,则说明可能是你得MSDK的app的问题。看起来你可以获取到PSDK设备的视频流,你的问题出现为getPayload获取的对象为空是吗?你一旦设备掉线,当然视频流就断了,这个你设置setPayloadChannelPriority和解码器关系不大,重要的是我们要搞清楚为啥Payload会掉线。你能跑一下demo看看,payload对象是否会掉线嘛? Link:https://github.com/dji-sdk/Mobile-SDK-Android/tree/master/Sample%20Code/app/src/main/java/com/dji/sdk/sample/demo/payload -
嗯,我今天跑了一下官方的MSDKdemo,如果只是与负载进行数据通信没有问题,与负载连接稳定,同样在我的app上不进行图像获取同样连接没有问题,通过sendDataToPayload等通信API可以正常获取与发送数据。为了进一步验证,我在demo负载相关的activity中添加了一个surfaceview用于图像显示,添加的具体代码如下,添加位置为demo中的PayloadWidgetActivity.java。
其中,如若不执行assignSourceToPrimaryChannel,则payload的onVideoDataReceived回调只显示fpv的视频图像,而设置号assignSourceToPrimaryChannel后,刚开始可以获取payload的图像,但是过一会就出现负载掉线的情况。assignSourceToPrimaryChannel试过多种设置组合均是如此,无论在第一路图传还是第二路图传均显示图像一段时间后payload就会掉线同时控制台开始报错,该情况与我自己的app一致。同时发现,通过PhysicalSourceListener所监听到的Source一直为UNKNOWN,而设置assignSourceToPrimaryChannel的图传通道为UNKNOWN时,同样可以获得负载图像,不过依旧会掉线。上述情况在DJI Pilot中不会出现,而在sample demo与我自己的APP中均会出现。PSDK跑的是官方例程。
从目前来看,MSDK端应该没有太大问题,我们这边感觉应该是PSDK负载端还存在问题,在这还是烦请老师们给予指导。PSDK版本2.0,MSDK版本4.16.1,无人机为M300RTK,负载安装在左路图传。除此之外,官方demo与遥控器连接时负载控制台也会出现538警告。
-
我感觉还像是MSDK的问题,首先你assignSourceToPrimaryChannel,我的建议是你把LEFT_CAM设置为primary,FPV设置为secondary,primary的带宽比secondary大,应该为主要的视频流源。这个文档上是说如果返回true,则你应该用getPrimaryVideoFeed或者getSecondaryVideoFeed来获取视频流。这才是你调用assignSourceToPrimaryChannel的意义所在,因为这个是分配哪个相机的视频流进primary或者secondary。如果你不调用assignSourceToPrimaryChannel则我认为isDJIVideoStreamingChannelAvailable会是false,此时要从payload.VideoDataReceivedCallback获取视频流,这个应该和你PSDK代码设置也有关系。这里我看到你既设置了assignSourceToPrimaryChannel又从payload.VideoDataReceivedCallback里面拿视频流就感觉不太对。你应该从getSecondaryVideoFeed里面拿视频流,参照下面的文档。 ![](https://djisdksupport.zendesk.com/attachments/token/bhzcZbHM8p1KPTNZW3H5kDE6d/?name=image.png) -
你这个报error7是PSDK侧报的嘛?最好是把log完整发一下。我看到了你的PSDK视频流是红外的对吧。你能不能先跑一下MSDK和PSDK的例子,看看PSDK的例子里的视频流能否在MSDK Sample上正常显示。PhysicalSource是根据安装位置来定的,然后assignSourceToPrimaryChannel是定义哪个位置的视频流去primary和seconadry。PSDK demo中的视频文件否符合DJI h.264。你这边primary报unkown是不是因为你没有设置assignSourceToPrimaryChannel,不设置的话,默认primary和seconadry都是unknown。
请先登录再写评论。
评论
16 条评论