【问题标题】:How to obtain video metadata from a video stored on Dropbox?如何从存储在 Dropbox 上的视频中获取视频元数据?
【发布时间】:2016-08-10 12:01:48
【问题描述】:

感谢SwiftyDropbox API,我不知道如何获取存储在 Dropbox 上的视频的时长。

听起来这些信息应该在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 格式。在这种情况下有什么解决方案?

【问题讨论】:

    标签: ios swift metadata dropbox-api swiftydropbox


    【解决方案1】:

    首先,确保您在调用getMetadata 时将includeMediaInfo 设置为true。 (此外,这是最近才添加的,因此请确保您运行的是最新版本的 SwiftyDropbox。)

    生成的FileMetadata 有望将MediaInfo 设置为MediaMetadata 的实例。 (不过也可能是Pending,所以要小心。)

    不过,当您查看 MediaMetadata 时,请注意它的字段都设置为可选,这意味着很遗憾不能保证它们可用。

    这是因为虽然 Dropbox 确实尽最大努力提取此元数据,但它并不总是这样做。这可能因文件而异。

    【讨论】:

    • 我做到了,但我什么也没得到,也没有任何错误。我已经用我当前的代码编辑了我的问题。
    • 看来是因为我上传到 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
           }
       }
    }
    

    您也可以使用它来确定文件是视频还是照片

    【讨论】:

      猜你喜欢
      • 2015-08-23
      • 2020-11-10
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      相关资源
      最近更新 更多