我目前正在为安卓开发视频播放器。我创建了一个显示当前字幕的简单文本视图。
问题是: MediaPlayer getCurrentPosition() 方法只给了我几秒钟的时间。我需要以毫秒为单位的值才能正确地将字幕与电影同步。
getCurrentPosition 应该给我以毫秒为单位的时间,但它以秒*1000 为单位给出时间(每个数字都以“000”结尾)。
- 你知道更好的方法吗?
- 如何获得以毫秒为单位的时间?
- 恰好在秒(000ms)的时间生成一个事件也可以。
有什么建议么?
我目前正在为安卓开发视频播放器。我创建了一个显示当前字幕的简单文本视图。
问题是: MediaPlayer getCurrentPosition() 方法只给了我几秒钟的时间。我需要以毫秒为单位的值才能正确地将字幕与电影同步。
getCurrentPosition 应该给我以毫秒为单位的时间,但它以秒*1000 为单位给出时间(每个数字都以“000”结尾)。
有什么建议么?
如果有人需要,我做了我的解决方案。
我开发了字幕模块。为了获得准确的毫秒数,我为系统和播放器计时器制作了一个同步器。
每播放 20 秒的视频,我执行以下程序:
现在,如果我想要当前电影毫秒:
容易,并导致同步字幕;)
1)解析字幕文件
2)利用 CounterTimer 类将其设置为 player.getDuration() 然后在 on tick 方法中设置您选择的间隔(在每个间隔的刻度上调用)获取播放器的当前位置使用 player.getCurrentPosition(); (请记住,这将以毫秒为单位返回您的时间)。还请记住存储并保留毫秒左。
3)将其转换为您想要的格式,并将其与您所采用的时间哈希图或数组相匹配。
4) 使用合适的文本更新覆盖在播放器上的 TextView。
5)然后取消持续时间的计时器(您可以实现具有持续时间的新计时器)。
6) 持续时间计时器在 onFinish() 中完成后,您可以使用您在步骤 2 中保存的毫秒左时间启动旧计时器。
就是这样 ;)