簡體   English   中英

Objective-C:將float轉換為int64_t而不會造成精度損失

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM