MSDK5.4中我这样设计有没有问题
Completed我想根据媒体文件MediaFile中的FileIndex查找文件,但是不需要全量查找对吧,所以我代码是这样写的,
//假装他是个for循环,道理一样的,就不解释了,为了方便这么写了下,
//这里相当于一个长度为5的集合
pullMediaFileListFromCamera(44302377, 1);
pullMediaFileListFromCamera(44302361, 1);
pullMediaFileListFromCamera(44302353, 1);
pullMediaFileListFromCamera(43778073, 1);
pullMediaFileListFromCamera(43778065, 1);
public void pullMediaFileListFromCamera(int mediaFileIndex, int count) {
IMediaManager mediaManager = MediaDataCenter.getInstance().getMediaManager();
if (mediaManager == null) {
return;
}
long currentTime = System.currentTimeMillis();
mediaManager.pullMediaFileListFromCamera(
new PullMediaFileListParam.Builder()
.mediaFileIndex(mediaFileIndex)
.count(count)
.build(),
new CommonCallbacks.CompletionCallback() {
@Override
public void onSuccess() {
LogUtil.show(TAG,"结果更新:"+mediaManager.getMediaFileListData().getData().size()+","+mediaManager.getMediaFileListData().getData().get(0).getFileIndex());
LogUtil.show(TAG, "拉取结果,耗时:" + ((System.currentTimeMillis() - currentTime) / 1000) + "s");
}
@Override
public void onFailure(@NonNull IDJIError error) {
LogUtil.e(TAG, "拉取媒体异常:" + error.errorCode() + ",描述:" + error.description());
}
});
}
我每次调用完pullMediaFileListFromCamera都获取一下mediaManager.getMediaFileListData(),是否能获取到5次的查找数据?会不会有遗漏的情况,因为我这里值写了5次,假如如果集合数量多的话,会不会有问题,每次查找是否都可以通过mediaManager.getMediaFileListData()获取到每次的查找结果,顺序不一样不要紧,可能某次执行速度快就先返回了
-
另外一个问题,我拍照完,是不是可以不调用pullMediaFileListFromCamera去获取图片,而可以直接创建
MediaFile mediaFile = new MediaFile();
//然后设置FileIndex,即通过监听CameraKey.KeyNewlyGeneratedMediaFile
//获取到的GeneratedMediaFileInfo中的FileIndex
mediaFile.setFileIndex(fileIndex);然后就可以直接调用下载了,而不用通过pullMediaFileListFromCamera获取文件详情再调用下载
-
那我连续拍照后,不还是要一直调用pullMediaFileListFromCamera去一一获取图片吗 --》拍照完之后,文件列表的状态会自动变为up_to_date,这个时候去获取文件列表应该就保存了最新照片。不过,5.4.0版本文件列表更新还存在问题,已经在修复了。 另外一个问题,我拍照完,是不是可以不调用pullMediaFileListFromCamera去获取图片,而可以直接创建 MediaFile mediaFile = new MediaFile(); //然后设置FileIndex,即通过监听CameraKey.KeyNewlyGeneratedMediaFile //获取到的GeneratedMediaFileInfo中的FileIndex mediaFile.setFileIndex(fileIndex); 然后就可以直接调用下载了,而不用通过pullMediaFileListFromCamera获取文件详情再调用下载 -->理论上,文件下载时最为关键的是fileindex,但不确定SDK请求飞机推送媒体文件数据的逻辑是否支持,需要和研发确认。 -
拍完的航线列表状态是会自动更新的。这原本是一个SDK的BUG,在5.1就已经修复了。如果5.4还存在,您可以提供视频给我们确认一下吗?这里是上传地址:https://pan-sec.djicorp.com/s/tsmkpfS4cgt598N -
你先帮我确认一下: MediaFile mediaFile = new MediaFile(); //然后设置FileIndex,就可以实现下载。 -->可以 简单打了个日志自己看吧, -->我这边是没有问题的,它会先变成UPDATING,然后变成up_to_date。只是文件列表现在还没有同步更新。 测试视频:https://pan-sec.djicorp.com/s/aowMGZiWHbwaQwZ -
我在这个地址(https://pan-sec.djicorp.com/s/aowMGZiWHbwaQwZ)上传了定时拍照的测试视频,名称为IMG_7784。测试结果是定时拍照下文件列表状态也是正常更新的。 是否是达到一定数量会必现这个问题呢?能否告诉我们必现方法?
Please sign in to leave a comment.
Comments
19 comments