我想咨询下图传的功能

已完成

评论

15 条评论

  • DJI Developer Support
    MSDK是无法获取到图片的绝对路径的,部分机型也是无法通过新生成监听直接拿到对应的mediaFile,因此需要进入到文件列表才可以进行下载。这一点无法进行优化,但大部分机型新生成的照片都会在列表的前面。 另一点是在进行拍照和下载的时候,相机正在处理其他业务,这个时候能否下载也是取决于机型的,例如M300搭配H20T的带宽资源较为丰富可以不进入到下载模式实现下载,但相机在处理其他业务也会对下载有影响,但Mavic 2进阶这类没有支持这个功能的飞机,需要进入到下载模式去保证下载的进行。
    0
    评论操作 固定链接
  • 方舟

    就是意思是,只能按照我上面的这个流程去进行,无法优化?因为我看上云api是可以同时拍照和下载不影响的,所以问题就是MSDK中不一样就是我上面所说的问题对吧,不切换下载模式,要么下载慢要么不支持下载

    0
    评论操作 固定链接
  • 方舟

    我现在想知道能否一边飞行直播,一边拍照,然后同时下载拍照的图片呢?据我了解需要下载需要切换到下载模式,这样摄像头就不可用就没办法直播、拍照,换句话来说再直播拍照的时候部分机型可以下载但是很慢,部分机型压根无法下载是不是

    0
    评论操作 固定链接
  • DJI Developer Support
    就是意思是,只能按照我上面的这个流程去进行,无法优化?因为我看上云api是可以同时拍照和下载不影响的,所以问题就是MSDK中不一样就是我上面所说的问题对吧,不切换下载模式,要么下载慢要么不支持下载 -->V4因为支持了很多上云不支持的以前的机型,因此设计上是这样的。 我现在想知道能否一边飞行直播,一边拍照,然后同时下载拍照的图片呢? --》如果你使用的是必需切换到下载模式才可以下载的飞机就是无法实现你的需求。 据我了解需要下载需要切换到下载模式,这样摄像头就不可用就没办法直播、拍照,换句话来说再直播拍照的时候部分机型可以下载但是很慢,部分机型压根无法下载是不是 -->是
    0
    评论操作 固定链接
  • DJI Developer Support
    下载是否很慢也决定于飞机和相机,MSDK上没有进入到下载模式的话,下载应该是与pilot效果差不多。
    0
    评论操作 固定链接
  • 方舟

    跟pilot效果差不多?目前我的测试是MSDK下载进度1%的叠加,非常非常的慢

    0
    评论操作 固定链接
  • DJI Developer Support
    您使用的是什么飞机和相机呢?
    0
    评论操作 固定链接
  • DJI Developer Support
    以及您进行对比的时候下载的是照片还是视频文件,大小大概是多少呢?我们可以测试一下。
    0
    评论操作 固定链接
  • 方舟

    图片8mb左右,然后机型是精灵4 pro,相机是拍摄模式的情况下进度大概是1-3s增加1%,如果是下载模式的话大概1-2秒5%左右不等。

    0
    评论操作 固定链接
  • 方舟

    我的设计是这样的,拍完照后我会将这些信息存储到缓存中

    然后我会新增队列去调用

    mediaManager.refreshFileListOfStorageLocation

    这个方法然后加载媒体列表然后找到对应的

    MediaFile

    然后加入到下载队列,并且调用MediaFile下的

    mediaFile.fetchFileData

    方法去下载文件。下载到Android端设备,那后面就跟无人机无关了对吧。

    因为我做了缓存因此在不在拍摄时或者此次任务未完成,下次开机连接还可以继续对吧,所以我想顺带问下,我吧MediaFile缓存到本机后,过段时间再拿到MediaFile下载文件,MediaFile会有时效性吗?我会不会缓存一段时间后这条MediaFile数据就失效了

    0
    评论操作 固定链接
  • DJI Developer Support
    图片8mb左右,然后机型是精灵4 pro,相机是拍摄模式的情况下进度大概是1-3s增加1%,如果是下载模式的话大概1-2秒5%左右不等。 --?精灵4 pro是属于图传资源比较少的飞机。您之前提到了上云API,上云API所支持的飞机的图传资源会比较多,因此不进入下载模式可以下载,但精灵4 pro是建议进入下载模式进行下载的。 因为我做了缓存因此在不在拍摄时或者此次任务未完成,下次开机连接还可以继续对吧, --》如果你的代码设计了继续下载,那么是可以实现按照你缓存的信息实现继续下载。SDK提供了下载方法,继续下载属于您的业务逻辑。如果你指的是SDK会自动继续下载,那是没有的。 我吧MediaFile缓存到本机后,过段时间再拿到MediaFile下载文件,MediaFile会有时效性吗?我会不会缓存一段时间后这条MediaFile数据就失效了 -->应该是不会失效的。自己按照信息生成的MediaFile也是可以下载的,比较重要的是MediaFile存储的信息。
    0
    评论操作 固定链接
  • 方舟

    1、继续或者不继续下载,那应该是前提是连接了无人机对吧

    2、MediaFile就是你们sdk里的类,我没做改动,就是直接把这个类缓存下来了,以后可以实现自动下载续传没完成的任务

    3、我想问的问题是按照我的业务逻辑设计怎么改善下载速度,代码逻辑:

         a、首先拍完照片就直接新建实体类:MediaTransmissionBean,存储拍照的回调图片、录像基础信息

         b、然后会自动进入队列,队列对自动获取缓存中的MediaTransmissionBean信息,然后读取出来,先连接无人机获取MediaFile对象,在更新到缓存中,防止任务没完成中断

         c、获取到MediaFile对象后调用下面的fetchFileData方法下载无人机中的图片、录像到Android设备中

         d、上一步中如果无人机断连就会中断,下次连接继续开启

         e、如果执行队列的时候无人机处于下载模式的话,那一切正常,如果在直播、拍照中那么下载就会很慢,但是切换到下载模式摄像头又会停止工作

         f、下载到Android移动设备后就和无人机无关了,清理掉已经下载过得缓存信息就行了,然后实现自己的上传下载逻辑代码

    问题:

         根据我上面的详细描述,设计逻辑,请问可以优化一下吗?比如我想再直播拍照的同时下载无人机图片、录像,按照目前测试的下载速度是不可能的,如果拍了100张,可能这个时候1张都没下载完,别说同时实时图传了

    0
    评论操作 固定链接
  • DJI Developer Support
    1、继续或者不继续下载,那应该是前提是连接了无人机对吧 -- 是的,连接飞机才可以实现下载。 根据我上面的详细描述,设计逻辑,请问可以优化一下吗?比如我想再直播拍照的同时下载无人机图片、录像,按照目前测试的下载速度是不可能的,如果拍了100张,可能这个时候1张都没下载完,别说同时实时图传了 -->如果这里指的还是精灵4 pro,这应该没有优化的空间了。 下载速率依赖于飞机的通信带宽,如果是精灵4 pro要进行照片的下载,它只能进入到下载模式使得图传通道尽量给到媒体文件的下载,但是这样图传是会中断的。
    0
    评论操作 固定链接
  • 方舟

    懂了,谢谢

    0
    评论操作 固定链接
  • DJI Developer Support
    很高兴有帮助到你
    0
    评论操作 固定链接

请先登录再写评论。