繁体   English   中英

在 DJI Android SDK 中调用 refreshFileListOfStorageLocation() 需要很多秒才能产生结果(mavic

[英]Calling refreshFileListOfStorageLocation() in the DJI Android SDK takes many seconds to produce a result (mavic

我正在编写的程序的目标如下:

  • 使用 DJI mavic 2 Enterprise 拍摄 aa jpg 图片
  • 将 jpg 图像下载到连接的 android 应用程序

代码就是这样做的。 问题是,整个过程需要超过 5 秒,有时长达 15 秒才能完成。 主要瓶颈是refreshFileListOfStorageLocation()函数。

代码设置如下:


mMediaManager = DJISampleApplication.getProductInstance().getCamera().getMediaManager();
camera = DJISampleApplication.getProductInstance().getCamera();

camera.startShootPhoto(new CommonCallbacks.CompletionCallback() {
    @Override
    public void onResult(DJIError djiError) {
        mMediaManager.refreshFileListOfStorageLocation(SettingsDefinitions.StorageLocation.INTERNAL_STORAGE, new CommonCallbacks.CompletionCallback() {
        @Override
        public void onResult(DJIError djiError) {
        newPicture();
    });
});


void newPicture() {
mediaFileList = mMediaManager.getInternalStorageFileListSnapshot();
MediaFile lastImage = mediaFileList.get(mediaFileList.size()-1);
lastImage.fetchFileData(destDir, names[0], new DownloadListener<String>() {
    @Override
    public void onSuccess(String s) {
        deleteAllFilesFromDrone();
    return;
    }
}

就像我说的,这有效; 问题是refreshFileListOfStorageLocation()onResult之间的时间。

有没有办法加快这个速度? 我试过了:

  • 将无人机存储上的文件数量保持在最大 1,
  • 通过addUpdateFileListStateListener创建 FileState 侦听器,尽管这只触发一次
  • 检查FileListState并且仅刷新,如果状态为INCOMPLETERESET

这些都没有帮助。

根据我与 DJI 开发人员支持的通信:

不幸的是,普遍的答案是速度就是它的速度,除了下载媒体文件的预览或手动取出 SD 卡并将媒体直接下载到计算机上之外,没有任何可以加快进程的方法.

因此,似乎不可能通过任何 API 技巧进一步提高速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM