菜鸟教程小白 发表于 2022-12-11 22:07:46

ios - SDK DJI 快速下载图片


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

<pre><code>Settings parameters operation failed. (Code : -1007)
</code></pre>

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

<pre><code>@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=&#34;\(error!.localizedDescription)&#34;
      }
      else {

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

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

                }
                else {
                  print(&#34;Refreshed file list&#34;)
                  print(&#34;State: \(manager.sdCardFileListState.rawValue)&#34;)


                  guard let files = manager.sdCardFileListSnapshot() else {
                        self.status.text = (&#34;No files to download&#34;)
                        return
                  }

                  self.status.text = &#34;There are files to download&#34;

                  var images: = []

                  for file in files {

                        if file.mediaType == .JPEG {

                            self.status.text = (&#34;Time created: \(file.timeCreated)&#34;)

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

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

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

                              }) // end of filedata fetch

                            }

                        }

                  } // end of loop


                }

      }

    })// end of camera setMode block

}`
</code></pre>

<p>任何帮助将不胜感激 - 谢谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><pre><code>@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=&#34;\(error!.localizedDescription)&#34;
    }
    else {

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

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

            }
            else {
                print(&#34;Refreshed file list&#34;)
                print(&#34;State: \(manager.sdCardFileListState.rawValue)&#34;)

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

                self.status.text = &#34;There are files to download&#34;

                var images: = []

                for file in files {

                  if file.mediaType == .JPEG {

                        self.status.text = (&#34;Time created: \(file.timeCreated)&#34;)

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

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

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

                            }) // end of filedata fetch
                        }
                  }

                } // end of loop
            }
    }

})// end of camera setMode block
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - SDK DJI 快速下载图片,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/54603286/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/54603286/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - SDK DJI 快速下载图片