场景我正在使用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) technology有关。
如果您正在播放的媒体是流媒体,则很可能符合该技术,并且,如果这样,它将被分割成几个较小的媒体块(我的经验是,视频的长度通常约为15秒)。比特率。
在那种情况下,除非将initialPlaybackTime
设置为与这些媒体片段之一的开始时间一致的值,否则播放器可能只是在使用最近的媒体片段而跳到该媒体片段的开始(通常做法)如果它接近当前片段的末尾,则返回下一个片段,以减少加载完整片段的媒体数据,而无需播放它。