Как получить метаданные видео из видео, хранящегося в Dropbox?
Я не знаю, что я могу сделать, чтобы получить продолжительность видео, сохраненного в Dropbox, благодаря SwiftyDropbox
API.
Похоже, что эта информация должна быть в случае Files.VideoMetadata
учебный класс
Я пытался использовать getMetadata
методы, но результаты не содержат длительность видео, что я ожидаю получить.
Это мой текущий код:
Dropbox.authorizedClient!
.files
.getMetadata(path: file.pathLower!, includeMediaInfo: true)
.response({ (result, err) in
if let metadata = result as? Files.FileMetadata {
print(metadata.name)
if metadata.mediaInfo != nil {
switch metadata.mediaInfo! as Files.MediaInfo {
case .Pending:
print("Pending")
case .Metadata(let mediaMetadata):
print(mediaMetadata)
}
}
}
})
mediaMetadata
содержит {}
и я не могу получить ни продолжительность видео, ни другие свойства.
Кажется, это потому, что мое видео, загруженное на Dropbox, находится в .mov
формат. Какие-нибудь решения в этом случае?
2 ответа
Вы были очень близки, вот как вы получаете продолжительность для видео:
if metadata.mediaInfo != nil {
switch metadata.mediaInfo! as Files.MediaInfo {
case .pending:
print("Pending")
case .metadata(let mediaMetadata):
switch mediaMetadata {
case let videoMetadata as Files.VideoMetadata:
print(videoMetadata)
print(videoMetadata.duration)
case let photoMetadata as Files.PhotoMetadata:
print(photoMetadata)
default: break
}
}
}
Вы можете использовать это, чтобы определить, является ли файл видео или фото, а также
Во-первых, убедитесь, что вы звоните getMetadata
с includeMediaInfo
установлен в true
, (Кроме того, это было добавлено только недавно, поэтому убедитесь, что вы используете последнюю версию SwiftyDropbox.)
Результирующий FileMetadata
надеюсь, будет MediaInfo
установить экземпляр MediaMetadata
, (Это также может быть Pending
хотя, так что будьте осторожны с этим.)
Когда вы смотрите на MediaMetadata
Тем не менее, обратите внимание, что все его поля установлены как необязательные, то есть, к сожалению, не гарантируется, что они будут доступны.
Это связано с тем, что хотя Dropbox делает все возможное для извлечения этих метаданных, это не всегда возможно. Это может варьироваться от файла к файлу.