Open pskow opened 4 years ago
Public comment from Luce Luo in Zendesk ticket #30174:
Dear Customer,
Thank you for contacting DJI. Here is a sample about how to fetch the media file, please refer to it. https://developer.dji.com/mobile-sdk/documentation/ios-tutorials/MediaManagerDemo.html
Thanks,
DJI Dev Team
I could not understand what do you want to get exactly, however, if you mean about how to load the data from the sd card, you can make it using the next functions, let me know if you need sth else:
func loadMediaList() {
loadingIndicator.isHidden = false
if (self.mediaManager?.sdCardFileListState == DJIMediaFileListState.syncing || self.mediaManager?.sdCardFileListState == DJIMediaFileListState.deleting) {
print("Media Manager is busy. ")
} else {
self.mediaManager?.refreshFileList(of: DJICameraStorageLocation.sdCard, withCompletion: { (error) in
if error != nil {
print("Fetch media file list failed: ",error?.localizedDescription as Any)
} else {
print("Fetch media file list success.")
let mediaFileList = self.mediaManager?.sdCardFileListSnapshot()
self.updateMediaList(mediaFileList: mediaFileList!)
self.loadingIndicator.isHidden = true
}
})
}
}
func updateMediaList(mediaFileList: [DJIMediaFile]) {
//change the DJIMedia File type to NS Array
let newNSArray = mediaFileList as NSArray
self.mediaList?.removeAllObjects()
//here is a very important step to change from an NSArray NSMutuableArray
self.mediaList = newNSArray.mutableCopy() as? NSMutableArray
let taskScheduler = self.fetchCamera()?.mediaManager?.taskScheduler
taskScheduler?.suspendAfterSingleFetchTaskFailure = false
taskScheduler?.resume(completion: nil)
for file in mediaFileList {
if file.thumbnail == nil {
let task = DJIFetchMediaTask(file: file, content: DJIFetchMediaTaskContent.preview, andCompletion: { (file, content, error) in
self.mediaTableView.reloadData()
})
taskScheduler?.moveTask(toEnd: task)
}
}
}//end of the update func
Hey, When calling
fetchThumbnailWithCompletion
onDJIMediaFile
completion is called, butthumbnail
is still nil.thumbnail
is fetched?UIImage
but onlyDJICompletionBlock
? It would make it way easier to work in scrollable list.