[英]Calling refreshFileListOfStorageLocation() in the DJI Android SDK takes many seconds to produce a result (mavic
我正在编写的程序的目标如下:
代码就是这样做的。 问题是,整个过程需要超过 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之间的时间。
有没有办法加快这个速度? 我试过了:
这些都没有帮助。
根据我与 DJI 开发人员支持的通信:
不幸的是,普遍的答案是速度就是它的速度,除了下载媒体文件的预览或手动取出 SD 卡并将媒体直接下载到计算机上之外,没有任何可以加快进程的方法.
因此,似乎不可能通过任何 API 技巧进一步提高速度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.