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