使用AVFoundation获取视频的持续时间

时间:2017-04-06 16:29:24

标签: ios objective-c swift avfoundation avplayer

要获得AVPlayerItem我可以做的持续时间:player.currentItem.duration

而不是这个,我也可以从后端获得Int的持续时间。然后我可以将其转换为Float,以便在需要持续时间的任何地方使用。我认为这在性能方面可能会更好,而在我的工作中可以减少工作时间。

例如,Apple说这是关于获取持续时间的:

  

“AV基金会的一个重要概念是初始化资产或资产   跟踪并不一定意味着它可以使用。有可能   需要一些时间来计算一个项目的持续时间(MP3   例如,文件可能不包含摘要信息)。而不是   你问,在计算一个值时阻塞当前线程   对于值并通过回调异步获得答案   您使用块定义。“

如果我决定通过从服务器获取持续时间来硬编码持续时间,那么对于可能出错的事情的想法?这是好习惯吗?

1 个答案:

答案 0 :(得分:1)

如果您已经知道后端的价值,并且您已经打电话说要获取视频网址,则检索持续时间似乎是一个合理的想法。

虽然 - 是否有任何不匹配的可能性?如果您这样做,客户端就可以保证"保证"是正确的。

如果您必须拨打特殊电话才能获得它,我不会因为在资产初始化期间确定它所花费的时间长得多。