Как получить метаданные видео из видео, хранящегося в 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 делает все возможное для извлечения этих метаданных, это не всегда возможно. Это может варьироваться от файла к файлу.

Другие вопросы по тегам