Mobile-SDK-Android-V5 icon indicating copy to clipboard operation
Mobile-SDK-Android-V5 copied to clipboard

why pullMediaFileListFromCamera always failed,min 4 pro

Open lubibama opened this issue 2 months ago • 3 comments

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=''}

lubibama avatar Oct 15 '25 14:10 lubibama

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技术支持

°°°

dji-dev avatar Oct 16 '25 03:10 dji-dev

我上述代码是在mediaManager.enable的success回调里面调用的pullMediaFileListFromCamera,确认enable成功的,想确认下如果只能拿去全部 我如何获取刚刚调用拍照动作拍照的那张照片呢?

lubibama avatar Oct 17 '25 08:10 lubibama

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技术支持

°°°

dji-dev avatar Oct 17 '25 10:10 dji-dev