why pullMediaFileListFromCamera always failed,min 4 pro
private fun fetchPhotoAndAnalyze(callback: (Boolean, String?) -> Unit) { val mediaManager = MediaManager.getInstance() mediaManager.enable(object : CommonCallbacks.CompletionCallback{ override fun onSuccess() { Log.i(TAG, "MediaManager enable success") // 创建拉取参数 - 只拉取照片,并且只获取最新的几个文件 val param = PullMediaFileListParam.Builder() .filter(MediaFileFilter.PHOTO) // 只获取照片 .orderType(FileListRequestTimeOrderType.NEW_FIRST) // 从最新文件开始 .count(3) .build()
val states= mediaManager.mediaFileListState // here is IDLE or UP_TO_DATE
mediaManager.pullMediaFileListFromCamera(param, object : CommonCallbacks.CompletionCallback {
override fun onSuccess() {
// 拉取成功后获取文件列表数据
val mediaFileListData = mediaManager.getMediaFileListData()
if (mediaFileListData != null) {
// 使用正确的API获取媒体文件列表
val mediaFiles = mediaFileListData.data
if (mediaFiles.isNotEmpty()) {
// 获取最新的照片文件
val latestPhoto = mediaFiles.get(0)
if (latestPhoto != null) {
// 下载并上传照片
// downloadAndUploadPhoto(latestPhoto, callback) } else { callback(false, "No photo found in media file list") } } else { callback(false, "Media file list is empty") } } else { callback(false, "Media file list data is null") } }
override fun onFailure(error: IDJIError) {
callback(false, "Failed to pull media file list: ${error.description()}")
}
})
}
override fun onFailure(p0: IDJIError) {
Log.e(TAG, "MediaManager enable failed")
}
})
msdk 5.15.0 error info: ErrorImp{errorType='SDK', errorCode='MEDIA_MANAGER_FETCH_FILE_LIST_FAILED', innerCode='null', description='无法执行', hint=''}
Agent comment from YIGUI LIU in Zendesk ticket #159532:
尊敬的开发者,
您好,感谢您联系DJI 大疆创新。
可以检查下,在调用pullMediaFileListFromCamera之前是否有:
- 调用MediaManager.enable进入回放模式,并通过CameraKey.KeyIsPlayingBack判断是否成功进入回放模式
- 调用setMediaFileDataSource设置需要获取的多媒体文件数据源 然后调用pullMediaFileListFromCamera时,Mini 4 Pro和Mini 3系列并不支持设置MediaFileFilter.PHOTO 单独拉取图片的过滤,只能设置ALL拉取全部。
您可以安装以上建议修改之后,再试试。 或者使用MSDK sample app=>测试工具=>多媒体管理,进行对比测试。
- 运行sample app: https://developer.dji.com/doc/mobile-sdk-tutorial/cn/quick-start/run-sample.html
感谢您的邮件,祝您生活愉快!
Best Regards,
DJI 大疆创新SDK技术支持
°°°
我上述代码是在mediaManager.enable的success回调里面调用的pullMediaFileListFromCamera,确认enable成功的,想确认下如果只能拿去全部 我如何获取刚刚调用拍照动作拍照的那张照片呢?
Agent comment from YIGUI LIU in Zendesk ticket #159532:
尊敬的开发者,您好。
可以通过CameraKey.KeyNewlyGeneratedMediaFile监听新产生的照片或者视频的,并拿到对应媒体信息,如索引、类型。 更多内容参考API文档:https://developer.dji.com/cn/api-reference-v5/android-api/Components/IKeyManager/Key_Camera_CameraKey.html?search=newly&i=0&#key_camera_newlygeneratedmediafile_inline
Best Regards,
DJI 大疆创新SDK技术支持
°°°