相关文章推荐
  • VideoView.Seekto goes to 5:19 for one video, 5:17 for one video and 5:32 for another for the same milliseconds(326000 ms)!
  • Since VideoView does not support onSeekListener, I've modified the source VideoView and added support for it. Yet it does not pause and start seeking from where I want it to - there is always a lag! The onSeekListener is called immediately some 6 s before where I want it to stop. In many cases the seek bar shows the right time and suddenly jumps back a few seconds even though I am calling video.start from onSeekCompleteListener
  • 为什么会这样不一致?有没有一种明确的方法可以在videoview中以毫秒为单位寻求到你想去的地方?我知道我应该使用MediaPLayer+Surface,但由于VideoView只是这两者的一个封装,我在源头上对其进行了修改,但无济于事。

    我意识到了这一点。 http://code.google.com/p/android/issues/detail?id=9135 但有没有办法绕过这个问题,并有一个明确的方法来解决这个问题呢?

    1.)寻求精确到毫秒的时间

    2.)在准确的时间内暂停和恢复?

    5 个评论
    我对这个帖子感兴趣,你有答案或解释吗?
    基本上这就是问题所在-- code.google.com/p/android/issues/detail?id=9135 let me know if you need specifics
    我相信,不准确的地方在于媒体文件本身。 这个人解释得很好 .
    嗨,@Sufian 是的,它对我来说是有效的。
    我的问题更多的是与视频查看时间的寻求不一致有关,而不是其他答案似乎暗示的寻求工作/不工作。虽然我不记得我对此做了什么,但我想我们当时接受了轻微的delta seek错误。所以对我来说,我不确定其他答案是否提供了一种方法,即给定一个时间X,准确地寻求到那个点。
    android
    android-videoview
    seek
    Vrashabh Irde
    Vrashabh Irde
    发布于 2012-10-18
    4 个回答
    shivampip
    shivampip
    发布于 2013-03-30
    已采纳
    0 人赞同

    你必须等待寻求完成。

    VideoView没有OnSeekCompleteListener(),但是你可以从VideoView的onPrepared方法访问MediaPlayer,然后设置OnSeekCompleteListener,像这样。

    videoView.setOnPreparedListener(new OnPreparedListener() { 
        @Override 
        public void onPrepared(MediaPlayer mp) {
            mp.setOnSeekCompleteListener(new OnSeekCompleteListener() {
                @Override 
                public void onSeekComplete(MediaPlayer mp) {
                    //Seek completed. Move seekbar
        
    Nirel
    Nirel
    发布于 2013-03-30
    0 人赞同

    10年后,我遇到了完全相同的问题。

    无论如何,对我来说,解决方案是使用VideoView里面的媒体播放器 ( 安卓奥利奥8.0+ ):

    解释一下。

    videoView 默认的 seekTo 函数 使用 媒体播放器 默认的 seekTo 函数 ( source )

    媒体播放器 默认的 seekTo 重载与 seekTo (long, int)与SEEK_PREVIOUS_SYNC模式,你应该使用SEEK_PREVIOUS_SYNC,只有当你想寻求一个同步帧,其时间戳早于或等于给定的毫秒。

    然而,SEEK_CLOSEST将寻找到一个可能是或不是同步帧的帧。 但最接近或等同于毫秒。

    Rudrik Patel
    Rudrik Patel
    发布于 2013-03-30
    0 人赞同

    我知道这不是解决你的问题的正确方法,但请看看这个库,它是在谷歌的默认视频视图上制作的。

    https://github.com/brianwernick/ExoMedia

    它具有默认视频视图所支持的所有功能和更多内容。

     
    推荐文章