MSDK5.4中我这样设计有没有问题

Completed

Comments

19 comments

  • 方舟

    获取说您这边有没有推荐的方案?

    我的需求就是根据一个装有MediaFile的FileIndex字段的集合List<Integer>然后查到到这些FileIndex所有对应的MediaFile数据,假如我我有长度为100的List<Integer>,最后我查找到的数据应该也是100条List<MediaFile>这样,顺序可以不一样但是要是一一对应的

    0
    Comment actions Permalink
  • DJI Developer Support
    您使用的是什么飞机和相机呢?部分相机是支持这样进行查询的,例如Mavic 3行业。M300+H20系列无法这样进行查询。
    0
    Comment actions Permalink
  • DJI Developer Support
    不过如果是获取大量且连续的媒体文件,我们比较建议是传入最小的mediaFileIndex,然后count设置为需要获取的数量,这样就会拿到一整个list。 频繁地进行相机文件的拉取可能会遇到相机繁忙等这类报错。
    0
    Comment actions Permalink
  • 方舟

    FIleIndex不连续且无规律,有什么好的设计?当索引大于1的时候只能获取所有图片然后遍历找对应MediaFile吗?我测试了一下,我机器里有五千多图片,查询时间要超过一分钟。

    “您使用的是什么飞机和相机呢?部分相机是支持这样进行查询的,例如Mavic 3行业。M300+H20系列无法这样进行查询。”-------->这个问题不在于我用什么飞机,而是我用的事MSDK5.4.0,是这个sdk支持什么飞机的问题

    0
    Comment actions Permalink
  • DJI Developer Support
    如果你查询的照片没有规律,我们比较建议先获取到全部的照片,然后在进行对应。或者是使用PullMediaFileListParam先获取一部分照片,划分几个部分进行对应。 一张一张去使用pullMediaFileListFromCamera,且连续不断地进行,我认为是可能会在使用过程中出现报错的。 这个问题不在于我用什么飞机,而是我用的事MSDK5.4.0,是这个sdk支持什么飞机的问题 -->筛选参数支持M30系列和Mavic 3行业,H20系列还没有支持。
    0
    Comment actions Permalink
  • 方舟

    那我连续拍照后,不还是要一直调用pullMediaFileListFromCamera去一一获取图片吗

    0
    Comment actions Permalink
  • 方舟

    另外一个问题,我拍照完,是不是可以不调用pullMediaFileListFromCamera去获取图片,而可以直接创建

    MediaFile mediaFile = new MediaFile();
    //然后设置FileIndex,即通过监听CameraKey.KeyNewlyGeneratedMediaFile
    //获取到的GeneratedMediaFileInfo中的FileIndex
    mediaFile.setFileIndex(fileIndex);

    然后就可以直接调用下载了,而不用通过pullMediaFileListFromCamera获取文件详情再调用下载

    0
    Comment actions Permalink
  • DJI Developer Support
    那我连续拍照后,不还是要一直调用pullMediaFileListFromCamera去一一获取图片吗 --》拍照完之后,文件列表的状态会自动变为up_to_date,这个时候去获取文件列表应该就保存了最新照片。不过,5.4.0版本文件列表更新还存在问题,已经在修复了。 另外一个问题,我拍照完,是不是可以不调用pullMediaFileListFromCamera去获取图片,而可以直接创建 MediaFile mediaFile = new MediaFile(); //然后设置FileIndex,即通过监听CameraKey.KeyNewlyGeneratedMediaFile //获取到的GeneratedMediaFileInfo中的FileIndex mediaFile.setFileIndex(fileIndex); 然后就可以直接调用下载了,而不用通过pullMediaFileListFromCamera获取文件详情再调用下载 -->理论上,文件下载时最为关键的是fileindex,但不确定SDK请求飞机推送媒体文件数据的逻辑是否支持,需要和研发确认。
    0
    Comment actions Permalink
  • 方舟

    那你确认一下啊,目前我测试是可以的,不需要拉取调用接口pullMediaFileListFromCamera去获取详情再下载。

    0
    Comment actions Permalink
  • 方舟

    而且我已经测试过了,拍完找后飞机状态并不是up_to_date,而是UPDATING,而且没有更新到up_to_date,所以你上面回答一定是错误的,麻烦帮我跟你们研发确认一下,我上面讲述的方式是否是行得通的?因为我没有那么多无人机测试,起码我目前测试的是可以的

    0
    Comment actions Permalink
  • DJI Developer Support
    拍完的航线列表状态是会自动更新的。这原本是一个SDK的BUG,在5.1就已经修复了。如果5.4还存在,您可以提供视频给我们确认一下吗?这里是上传地址:https://pan-sec.djicorp.com/s/tsmkpfS4cgt598N
    0
    Comment actions Permalink
  • 方舟

    你先帮我确认一下: MediaFile mediaFile = new MediaFile(); //然后设置FileIndex,就可以实现下载。

    0
    Comment actions Permalink
  • 方舟

    简单打了个日志自己看吧,另外帮我确认下上述方案是不是对的

    0
    Comment actions Permalink
  • DJI Developer Support
    你先帮我确认一下: MediaFile mediaFile = new MediaFile(); //然后设置FileIndex,就可以实现下载。 -->可以 简单打了个日志自己看吧, -->我这边是没有问题的,它会先变成UPDATING,然后变成up_to_date。只是文件列表现在还没有同步更新。 测试视频:https://pan-sec.djicorp.com/s/aowMGZiWHbwaQwZ
    0
    Comment actions Permalink
  • shiqianjiao

    你们不要测单拍,测一下定时拍照就知道了,一直固定2秒拍照拍个几十上百张,拍完之后一直是UPDATING的状态,不会变成up_to_date,

    0
    Comment actions Permalink
  • 0
    Comment actions Permalink
  • 方舟

    就单次拍照就会这样,必现!而且能不能帮我核对一下是不是创建MediaFile对象然后设置FileIndex就可以下载了,帮我和研发确认一下,我已经第三遍问你们了,每次都是避而不见!!!

    0
    Comment actions Permalink
  • DJI Developer Support
    就单次拍照就会这样,必现!而且能不能帮我核对一下是不是创建MediaFile对象然后设置FileIndex就可以下载了,帮我和研发确认一下,我已经第三遍问你们了,每次都是避而不见!!! -->和研发确认是可以下载的。之前的回复有针对这个问题的回答。
    0
    Comment actions Permalink
  • 靳艳杰

    new mediaFile 这个思路,你都能想到,真厉害。

    我这边还是通过pullMediaFileListFromCamera这种方式。这个方法虽然在照片超过1000张时有点慢,但可以通过flag、锁等减少这个方法的调用次数。 效果其实也勉强能接受。

    对于index和全量照片匹配的问题,我这边测试的结果,其实很快的,耗时不是发生在这里的。

    把新的index存到list里面,一次pullMediaFileListFromCamera成功后,for循环匹配list中的所有index,就可以得到对应的多个mediafile了,速度就提上来了。

    0
    Comment actions Permalink

Please sign in to leave a comment.