[英]Objective-C: Convert float to int64_t without precision loss
場景我正在開發一個使用RTPlayer播放來自我們服務器的預錄制視頻和音頻的應用程序。
疑似 RTPlayer具有2個有用的屬性。 .initialPlaybackTime
和.currentPosition
用於計算媒體時間位置(以秒為單位)。 .initialPlaybackTime
設置播放器應在媒體中開始播放的位置, .currentPosition
告訴您從何處退出可以在媒體中的同一位置繼續播放。
問題 .initialPlaybackTime
屬性為int64_t
類型,而.currentPosition
類型為float
。 當我“外掛”的.currentPosition
值到.initialPlaybackTime
始終存在約8-10秒向玩家的位置。
問題如何將.currentPosition
float
值轉換為int64_t
並保持相同的值?
“將8-10秒添加到玩家的位置中”可能與基礎HTTP Live Streaming(HLS)技術有關 。
如果您正在播放的媒體是流媒體,則很可能符合該技術,並且,如果這樣,它將被分割成幾個較小的媒體塊(我的經驗是,視頻的長度通常約為15秒)。比特率。
在那種情況下,除非將initialPlaybackTime
設置為與這些媒體片段之一的開始時間一致的值,否則播放器可能只是在使用最近的媒體片段並跳到該片段的開頭(通常做法)如果它接近當前片段的末尾,則返回到下一個片段,以減少在不播放的情況下加載完整片段的媒體數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.