【问题标题】:Android VideoView - Detect point of time in videoAndroid VideoView - 检测视频中的时间点
【发布时间】:2010-05-10 04:31:23
【问题描述】:

我正在使用 VideoView 来显示视频。我正在使用 setOnPreparedListener 和 setOnCompletionListener 在视频开始和结束之前和之后做一些事情。

我想知道如何才能检测视频中的某个时间点。例如,假设我想在视频播放 10 秒后将日志写入文件。如何检测 10s 标记?

谢谢 克里斯

【问题讨论】:

    标签: android listener android-videoview


    【解决方案1】:

    第 1 步:使用postDelayed() 或其他东西来控制每一秒左右。

    第 2 步:检查 getCurrentPosition() 并查看它是否在您想要的标记点附近。如果是这样,请进行处理。

    第 3 步:起泡、冲洗、重复。

    Android 没有机制在视频中出现特定时间点时专门调用您,因此您必须使用轮询机制。

    【讨论】:

    • 根据我的经验,这在一定程度上有效,但不是很准确。也许 +/- 500 毫秒
    • 使用 postDelayed 与使用计时器简单地检查当前位置相比是否有优势。我想知道在 Android 中使用处理程序与使用计时器是否有任何优势。
    • @sleeping.ninja:定时器需要线程; postDelayed() 没有。
    • @CommonsWare - 我是一个 Android 菜鸟,如果我错了,请纠正我。线程发生在幕后,对吗?因此,如果您设置一个计时器以每隔几毫秒检查一次视频位置(检查发生在单独的线程上),效率会不会更高。到达所需位置后,我可以强制在 UI 线程上发生一些事情。那有意义吗?你会称之为更好的方法吗?不要认为性能差异甚至值得辩论,但我只是想知道使用计时器是否是个好主意
    • @sleeping.ninja:“主线程”不是“播放视频内容”。视频内容始终由MediaPlayer 提供的线程播放。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多