繁体   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