2017-04-06 158 views
2

要获得AVPlayerItem的持续时间,我可以这样做:player.currentItem.duration获取AVFoundation视频的持续时间

取而代之,我也可以从我的后端得到持续时间为Int。然后我可以将其转换为Float,以便在需要持续时间的地方使用。我认为这在性能方面可能会更好,而在我的最终获得持续时间方面的工作会减少。

例如苹果公司表示这个有关获取时间:

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

任何思考的事情,可以去如果我决定通过从服务器获取它来硬编码持续时间,那么错误?这是好的做法吗?

回答

1

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

虽然 - 是否有任何不匹配的机会?如果你做客户端,它“保证”是正确的。

如果您必须特别打电话才能得到它,我不会花费比确定资产初始化时间更长的时间。

+0

只是为了确认:视频的所有数据都来自于1 api调用,它会返回JSON以及所需的所有数据,例如视频标题,持续时间,描述等。根据您所说的话,使用JSON持续时间长的数据比从'player.currentItem.duration'获得更好的数据? – JEL

+0

是的,在这种情况下,我一定会使用您的预先计算的时间。 –

+0

好的,谢谢你花时间澄清这一点! :) – JEL

相关问题