• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - SDK DJI 快速下载图片

[复制链接]
菜鸟教程小白 发表于 2022-12-11 22:07:46 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我只是尝试从我的 DJI 无人机上下载最新的访问源并将源转换为 UIImage。我认为可以做到这一点的最简单方法是拍照,然后立即从存储中下载最新照片。我将从下面的存储代码中添加下载。这是最简单的方法吗?我一直收到这个错误代码 -

Settings parameters operation failed. (Code : -1007)

我进行了研究,但找不到这意味着什么 - DJI 文档仅限于几乎所有 obj-c。这里是代码 -

@IBAction func download(_ sender: UIButton) {
    let camera = self.fetchCamera()

    // switch camera mode to allow for media downloads
    camera?.setMode(DJICameraMode.mediaDownload, withCompletion: {(error) in
        if error != nil {
            self.status.text="\(error!.localizedDescription)"
        }
        else {

            // get the media manager from the drone to gain access to the files
            let manager = camera!.mediaManager!

                if error != nil {
                    self.status.text = "State: \(manager.sdCardFileListState.rawValue)"
                    self.status.text = "Error refreshing list: \(error)"

                }
                else {
                    print("Refreshed file list")
                    print("State: \(manager.sdCardFileListState.rawValue)")


                    guard let files = manager.sdCardFileListSnapshot() else {
                        self.status.text = ("No files to download")
                        return
                    }

                    self.status.text = "There are files to download"

                    var images: [UIImage] = []

                    for file in files {

                        if file.mediaType == .JPEG {

                            self.status.text = ("Time created: \(file.timeCreated)")

                            DispatchQueue.main.asyncAfter(deadline: .now() + 1) {

                                file.fetchData(withOffset: 0, update: DispatchQueue.main, update: {(_ data: Data?, _ isComplete: Bool, _ error: Error?) -> Void in

                                    if error != nil {
                                        self.status.text = "State: \(manager.sdCardFileListState.rawValue)"
                                        self.status.text = "Error downloading photo: \(error!)"
                                    }
                                    else {
                                        // unwrap downloaded data and create image
                                        if let data = data, let downloadedImage = UIImage(data: data) {
                                            self.status.text = "Image was downloaded!"
                                            images.append( downloadedImage )
                                        }
                                    }

                                }) // end of filedata fetch

                            }

                        }

                    } // end of loop


                }

        }

    })// end of camera setMode block

}` 

任何帮助将不胜感激 - 谢谢



Best Answer-推荐答案


@IBAction func download(_ sender: UIButton) {
    let camera = self.fetchCamera()

// switch camera mode to allow for media downloads
camera?.setMode(DJICameraMode.mediaDownload, withCompletion: {(error) in
    if error != nil {
        self.status.text="\(error!.localizedDescription)"
    }
    else {

        // get the media manager from the drone to gain access to the files
        let manager = camera!.mediaManager!

            if error != nil {
                self.status.text = "State: \(manager.sdCardFileListState.rawValue)"
                self.status.text = "Error refreshing list: \(error)"

            }
            else {
                print("Refreshed file list")
                print("State: \(manager.sdCardFileListState.rawValue)")

                while(manager.internalStorageFileListState != .UpToDate) {
                    // Do nothing...
                }
                guard let files = manager.sdCardFileListSnapshot() else {
                    self.status.text = ("No files to download")
                    return
                }

                self.status.text = "There are files to download"

                var images: [UIImage] = []

                for file in files {

                    if file.mediaType == .JPEG {

                        self.status.text = ("Time created: \(file.timeCreated)")

                        DispatchQueue.main.asyncAfter(deadline: .now() + 1) {

                            file.fetchData(withOffset: 0, update: DispatchQueue.main, update: {(_ data: Data?, _ isComplete: Bool, _ error: Error?) -> Void in

                                if error != nil {
                                    self.status.text = "State: \(manager.sdCardFileListState.rawValue)"
                                    self.status.text = "Error downloading photo: \(error!)"
                                }
                                else {
                                    // unwrap downloaded data and create image
                                    if let data = data, let downloadedImage = UIImage(data: data) {
                                        self.status.text = "Image was downloaded!"
                                        images.append( downloadedImage )
                                    }
                                }

                            }) // end of filedata fetch
                        }
                    }

                } // end of loop
            }
    }

})// end of camera setMode block
}

关于ios - SDK DJI 快速下载图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54603286/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap