2017-04-06 178 views
2

要獲得AVPlayerItem的持續時間,我可以這樣做:player.currentItem.duration獲取AVFoundation視頻的持續時間

取而代之,我也可以從我的後端得到持續時間爲Int。然後我可以將其轉換爲Float,以便在需要持續時間的地方使用。我認爲這在性能方面可能會更好,而在我的最終獲得持續時間方面的工作會減少。

例如蘋果公司表示這個有關獲取時間:

「在AV基金會一個重要概念是初始化資產或 軌道並不一定意味着它已經可以使用。它可能需要一些時間來計算一個項目的持續時間(例如,一個MP3 文件可能不包含摘要信息)。而不是 阻擋而被計算出的值當前線程,你的價值觀問 並通過回調 您定義使用塊得到一個答案回來是異步的。」

任何思考的事情,可以去如果我決定通過從服務器獲取它來硬編碼持續時間,那麼錯誤?這是好的做法嗎?

回答

1

如果您已經知道後端的價值,並且您已經打電話說出獲取視頻網址,那麼檢索持續時間似乎是一個合理的想法。

雖然 - 是否有任何不匹配的機會?如果你做客戶端,它「保證」是正確的。

如果您必須特別打電話才能得到它,我不會花費比確定資產初始化時間更長的時間。

+0

只是爲了確認:視頻的所有數據都來自於1 api調用,它會返回JSON以及所需的所有數據,例如視頻標題,持續時間,描述等。根據您所說的話,使用JSON持續時間長的數據比從'player.currentItem.duration'獲得更好的數據? – JEL

+0

是的,在這種情況下,我一定會使用您的預先計算的時間。 –

+0

好的,謝謝你花時間澄清這一點! :) – JEL

相關問題