我正在开发一款适用于Android的视频播放器。我创建了一个简单的文本视图,显示当前的副标题。
问题是: MediaPlayer getCurrentPosition()方法只给我几秒钟的时间。我需要以毫秒为单位的值来正确地将字幕与电影同步。
getCurrentPosition应该以毫秒为单位给出时间,但它以秒为单位给出时间* 1000(每个数字以“000”结尾)。
有什么建议吗?
答案 0 :(得分:3)
如果有人需要,我会解决问题。
我开发了字幕模块。 为了获得准确的毫秒数,我为系统和播放器计时器制作了一个同步器。
视频播放每20秒我执行以下步骤:
现在,如果我想要当前的电影毫秒:
简单,并产生同步字幕;)
答案 1 :(得分:0)
1)解析字幕文件
2)使用CounterTimer类将它设置为player.getDuration()然后在tick方法中设置你选择的间隔(在每个间隔的勾号上调用)使用player.getCurrentPosition()获取你的玩家的当前位置; (请记住,这将以毫秒为单位返回时间)。还请记住存储并保持毫秒左右
3)将其转换为您想要的格式,并将其与您拍摄的时间散列图或数组进行匹配
4)使用合适的文本更新覆盖在播放器上的TextView
5)取消定时器的持续时间然后(你可以用持续时间实现一个新的定时器)
6)持续时间计时器在onFinish()完成后,您可以使用在步骤2中保存的毫秒左右时间启动旧计时器。
多数民众赞成;)