android-VideoView和MediaPlayer seekTo始终从头开始

android-VideoView和MediaPlayer seekTo始终从头开始,第1张

概述寻找在VideoView中播放的视频并将其恢复时遇到一些问题.这是我的代码的一部分:videoView.setOnPreparedListener(newMediaPlayer.OnPreparedListener(){@OverridepublicvoidonPrepared(MediaPlayermp){mp.start();mp.setOnSeekCompleteListene

寻找在VIDeoVIEw中播放的视频并将其恢复时遇到一些问题.

这是我的代码的一部分:

vIDeoVIEw.setonPreparedListener(new MediaPlayer.OnPreparedListener() {    @OverrIDe    public voID onPrepared(MediaPlayer mp) {        mp.start();        mp.setonSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {            @OverrIDe            public voID onSeekComplete(MediaPlayer mp) {                Log.d("V", "onSeekComplete1 " + vIDeoVIEw.getCurrentposition());                vIDeoVIEw.start();                Log.d("V", "onSeekComplete1 " + vIDeoVIEw.getCurrentposition());            }        });    }});vIDeoVIEw.setVIDeoURI('some local uri');

在某些时候,我正在暂停使用以下视频:
vIDeoVIEw.pause();

单击按钮后,我正在寻找特定时间的视频,例如. 10秒(10000毫秒).

@OnClick(R2.ID.ivMove)voID clickMove() {   vIDeoVIEw.seekTo(10000);}

之后,我在日志中看到:

onSeekComplete1 10000onSeekComplete2 0

因此,在调用vIDeoVIEw.start()之后,它从头开始播放视频!

但是,当我在不寻求视频的情况下调用start()时(例如,一个按钮调用了pause(),第二个按钮调用了start(),则视频正在正确播放-从暂停的那一刻开始,而不是从开始.

你能告诉我我在做什么错吗?

解决方法:

问题是由MediaPlayer引起的-它正在寻求最接近视频的关键帧,事实证明我的测试视频每30秒就有一个关键帧.

我更改为ExoPlayer https://github.com/google/ExoPlayer-它可以寻求准确的时间.

总结

以上是内存溢出为你收集整理的android-VideoView和MediaPlayer seekTo始终从头开始全部内容,希望文章能够帮你解决android-VideoView和MediaPlayer seekTo始终从头开始所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存