首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在VideoView中使用SeekTo()方法后如何恢复视频?

在VideoView中使用SeekTo()方法后,可以通过以下步骤来恢复视频播放:

  1. 首先,需要在VideoView的回调方法中监听视频播放的状态,例如OnPreparedListener和OnCompletionListener。
  2. 在OnPreparedListener回调方法中,可以获取视频的总时长,可以保存当前的播放位置。
  3. 在SeekTo()方法调用后,视频会跳转到指定的位置进行播放。可以在OnCompletionListener回调方法中判断视频是否已经播放完毕,如果是,则可以通过设置VideoView的播放位置为之前保存的位置来恢复视频的播放。

以下是一个示例代码:

代码语言:txt
复制
VideoView videoView = findViewById(R.id.videoView);
Uri videoUri = Uri.parse("视频的URL或本地路径");
videoView.setVideoURI(videoUri);

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mediaPlayer) {
        int duration = mediaPlayer.getDuration(); // 获取视频总时长
        // 保存当前的播放位置
        int currentPosition = videoView.getCurrentPosition();
        // 恢复视频的播放位置
        videoView.seekTo(currentPosition);
        videoView.start(); // 开始播放视频
    }
});

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mediaPlayer) {
        // 视频播放完毕后,恢复视频的播放位置
        videoView.seekTo(currentPosition);
        videoView.start(); // 重新开始播放视频
    }
});

这样,当使用SeekTo()方法跳转到指定位置后,视频会在指定位置进行播放,并且在播放完毕后能够恢复到之前的位置继续播放。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android实现视频播放的3种实现方式

Android提供了常见的视频的编码、解码机制。使用Android自带的MediaPlayer、MediaController等类可以很方便的实现视频播放的功能。支持的视频格式有MP4和3GP等。...); } } 使用此实现方式的步骤: 加载指定的视频文件 建立VideoView和MediaController之间的关联,这样就不需要自己去控制视频的播放、暂停等。...VideoView获取焦点。 实现效果图如下: 界面的快退、播放、快进、时间、进度条等是由MediaController提供的。...界面布局文件定义SurfaceView组件,并为SurfaceView的SurfaceHolder添加Callback监听器。...这两种方法的区别是:prepare方法是将资源同步缓存到内存,一般加载本地较小的资源可以用这个,如果是较大的资源或者网络资源建议使用prepareAsync方法,异步加载。

4.5K30
  • Android原生视频播放VideoView使用

    本文实例为大家分享了Android原生视频播放VideoView的具体代码,供大家参考,具体内容如下 布局文件activity_video.xml <RelativeLayout xmlns:android...) { @Override public boolean onError(MediaPlayer mp, int what, int extra) { return false; } }); //设置视频文件加载完毕以后的回调函数...event) { return false; } }); //设置网络视频路径 Uri uri = Uri.parse("http://vd3.bdstatic.com/mda-ig4tp6gnqwu5we8i...; //停止回放视频文件 videoView.stopPlayback(); } /** * 页面从暂停恢复 */ @Override protected void onResume() { super.onResume...(); //跳转到暂停时保存的位置 if (intPositionWhenPause = 0) { videoView.seekTo(intPositionWhenPause); //初始播放位置 intPositionWhenPause

    2.6K51

    Android主流播放器比较

    使用方法和优缺点。...VideoView使用非常简单,播放视频的步骤: 界面布局文件定义 VideoView 组件,或在程序创建 VideoView 组件 调用 VideoView 的如下两个方法来加载指定的视频:...()、psuse() 方法来控制视频的播放 不足: 原生VideoView只能播放mp4和3gp两种格式; seekTo定位不准,只能定位到关键帧; VideoView不保存视频播放状态,需自行处理;...比如如何获取媒体数据,如何缓冲以及是怎样的编码格式。 ExoPlayer 基于 MediaCodec 和 AudioTrack 提供了默认的音视频的 TrackRenderer 实现。...2. Activity 的 onCreate 方法添加如下代码,初始化 Vitamio 的解码器 @Override public void onCreate(Bundle icicle) {

    2.9K20

    Android中文API —— VideoView

    VideoView 类可以从不同的来源(例如资源文件或内容提供器) 读取图像,计算和维护视频的画面尺寸以使其适用于任何布局管理器, 并提供一些诸如缩放、着色之类的显示选项。...公共方法 public boolean canPause () (译者注:判断是否能够暂停播放视频) public boolean canSeekBackward () (译者注:判断是否能够倒退) public...参数 keyCode 表示按下的键的、 KEYCODE_ENTER 定义的键盘代码 event        KeyEvent 对象,定义了按钮动作 返回值 如果处理了事件,返回真。...如果measureSpec对象传入的模式是EXACTLY,那么返回的是measureSpec对象的尺寸大小值。...public void resume () (译者注:恢复挂起的播放器) public void seekTo (int msec) (译者注:设置播放位置) public void setMediaController

    1.4K30

    Android编程实现播放视频方法示例

    本文实例讲述了Android编程实现播放视频方法。分享给大家供大家参考,具体如下: 播放视频文件其实并不比播放音频文件复杂,主要是使用 VideoView 类来实现的。...start() 开始或继续播放视频。 pause() 暂停播放视频。 resume() 将视频重头开始播放。 seekTo() 从指定的位置开始播放视频。...然后 VideoView 的下面又放置了三个按钮,分别用于控制视频的播放、暂停和重新播放。...最后 onDestroy()方法,我们还需要调用一下 suspend()方法,将 VideoView 所占用的 资源释放掉。...其实 VideoView 只是帮我们做了一个很好的封装而已,它的背 仍然是使用 MediaPlayer 来对视频文件进行控制的。

    89351

    Android TV 开发之 TV视频播放器

    这些问题一定在你的脑海里面环绕着,我们注意到,电视机使用遥控器,而我们的手机使用手指触摸点击,这个不能混为一谈,所以电视上需要用到焦点电视上都是通过控件获取焦点来实现点击效果的,我们布局文件的button...本地 和 网络 2.播放视频的的停止播放、继续播放、重新播放 3.播放视频时的时间和进度计算 4.播放时候按遥控器左右键时,前进 后退 先想清楚这些问题,才能使编码过程变得有条理 视频来源...本地: 我们可以valuse文件夹下面创建一个raw文件夹,在里面放一个mp4短视频文件,(PS:至于真机存储里面放一个视频,你只要播放路径指定这个视频所在地址,然后再加上文件的读写权限,因为我不是这么实现的...,所以就不过多赘述了) 网络: 就是通过一个视频地址来播放视频,既然是通过网络来播放的,我们肯定要有联网的权限啊,AndroidManifest.xml文件添加联网许可权限 如下所示 <uses-permission...();//获取视频的总时长 tvTotalTime.setText(stringForTime(totalTime));//设置视频总时间,stringForTime是写的一个时间装换方法

    6.7K71

    Android ijkplayer的使用方法解析

    视频预处理完成被调用。此时视频的宽度、高度、宽高比信息已经获取到,此时可调用seekTo视频从指定位置开始播放。...功能: 使用Vitamio的VideoView进行视频播放 视频左侧界面(左1/2以内)上下滑动调节亮度 视频右侧界面(右1/2以外)上下滑动调节声音 双击切换视频窗口布局 非直播状态,可以左右滑动调节当前播放进度...final String SCALETYPE_FILLPARENT="fillParent"; /** * 将视频的内容完整居中显示,如果视频大于view,则按比例缩视频直到完全显示view */...:将视频的内容完整居中显示,如果视频大于view,则按比例缩视频直到完全显示view * fitXY:不剪裁,非等比例拉伸画面填满整个View * 16:9:不剪裁,非等比例拉伸画面到16:...9,并完全显示View * 4:3:不剪裁,非等比例拉伸画面到4:3,并完全显示View * </pre * @param scaleType */ public void setScaleType

    9.3K20

    Android开发笔记(一百二十五)自定义视频播放器

    视频播放方式 Android播放视频的方式有两种: 1、使用MediaPlayer结合SurfaceView进行播放。...resume : 恢复播放。 suspend : 结束播放并释放资源。 seekTo : 拖动到指定进度开始播放。 getDuration : 获得视频的总时长。...甚至布局文件中都不用声明视频视图,而在代码动态添加视频画面,由此便衍生出VideoView和MediaController的两种集成方式: 1、布局文件声明VideoView。...VideoView对象的使用步骤不变,即先调用setVideoPath方法指定视频文件,然后调用setMediaController方法指定控制条,最后调用start方法开始播放。...此时MediaController对象只需调用setMediaPlayer方法指定播放器即可。 2、代码动态添加VideoViewVideoView对象的使用步骤同上。

    2.7K40

    Android VideoView 视频播放完成例子(进度条,播放时间,暂停,拖动)

    VideoView 开发 VideoView,用于播放一段视频媒体,它继承了SurfaceView,位于"android.widget.VideoView",是一个视频控件。...VideoView也为开发人员提供了对应的方法,这里简单介绍一些常用的: int getCurrentPosition():获取当前播放的位置。...int getDuration():获取当前播放视频的总长度。 isPlaying():当前VideoView是否播放视频。...setOnPreparedListener(MediaPlayer.OnPreparedListener l)::监听视频装载完成的事件。 上面的一些方法通过方法名就可以了解用途。...并且VideoView使用完之后,无需编码回收资源。 12.1.1. 播放网络视频 加入 android.permission.INTERNET 允许访问网络 <?

    14.5K12

    Android多媒体之视频播放器(基于MediaPlayer)

    零、前言 对于视频的播放,Android有内置的VideoView,用起来非常简单 本篇从自定义VideoView来封装MediaPlayer开始说起 <VideoView android...角色: MediaPlayer 视频处理器 SurfaceView 视频显示界面 MediaController 视频控制器 ---- 1.自定义VideoView继承自SurfaceView /**...(videoW, videoH); setLayoutParams(params); } |--- 使用: ---->[setOnVideoSizeChangedListener]-----...//视频宽高分别/最大倍数值 计算出放大视频尺寸 videoW = (int) Math.ceil(videoW * 1.0f / ratio * rateX); videoH =...的Api自己实现控制逻辑,细心一点还是不难的,就是麻烦 界面如下,不贴布局了,比较简单,也挺多的,这里说一下显示面板5秒隐藏的逻辑 private val mHandler = Handler

    5.5K52

    Android 实现视屏播放器、边播边缓存功能、外加铲屎(IJKPlayer)

    例如根据旋转信息,判断TextureView界面的比例是横的还是竖的,如果View是竖的,而视频也是竖的,那么因为旋转了90度,那么让视频的高显示为屏幕的宽度,从新计算旋转的宽度。...逻辑播放器中统一分发各种状态,把被播放的manager状态同步到这里,之后你想要在哪个逻辑播放器里播放只需要对应的设置状态把manager的监听同步过来。...既然是FrameLayout,那么我们往他里面塞东西就好了,这里我们可以GSYVideoPlayer里面写一个方法点击全屏按钮的时候: 隐藏状态栏,清除当前TextureView。...IJKPLAY库里还封装了exoplayer谷歌干儿子,用法也基本一致,这个播放器自己内部判断旋转,不会有上面的seekto问题,可是后台或者onPause之后的画面恢复速度堪忧啊,各位遇到过吗?...//不要忘记配置activity,所有背景的activity android:configChanges="orientation|keyboardHidden|screenSize" 普通列表播放视频快速移动可能出现的错位问题

    2.9K90

    android视频系列:视频解码篇--android上视频播放的实现

    我们来看看,Android为我们提供了哪些对象,可以让我们做视频的播放。 Android播放视频 下面我们介绍3种Android上播放视频方法。 1. 使用VideoView播放视频 ?...VideoView把解码和显示工作全部都封装起来,简单地设置视频路径,就可以进行播放了。 显示方面,它就是一个View,可以代码里创建,也可以layout xml里直接定义。...放入到SurfaceTexture的数据,我们要如何使用呢? 需要把数据从SurfaceTexture取出来,放到opengl texture。实现如下: ?...至此,opengl拿到了解码的图像数据,就可以自如的做任何图像相关的处理,渲染到屏幕上。 总结 以上Android上实现的三种播放视频方法,从简单到复杂,可以根据自己功能的需要,灵活进行选择。...如果只是简单地播放视频,可以使用VideoView。如果对播放有更多的控制需求,可以使用MediaPlayer和SurfaceView。

    4K131

    :记一次SQLite的使用

    ,不然感觉很生硬 以前的SQLite介绍文章有点无病呻吟的感觉,这次来实际用一下,相信感触会更深 1.解决视频播放量的记录问题 2.解决视频进入时恢复到上次播放进度 3.解决查询最近播放的n条记录的问题...---- 一、SQLite使用步骤 1.表分析 表字段 id 标识 主键,自增 path 视频名称 varchar(120...1.关于插入 视屏播放器功能由VideoView实现,我上面封了一层VideoPlayerManager用来管理 每次设置播放资源时插入数据,上面的插入方法已经有值时,播放次数会 + 1...---- 2.播放进度的记录 核心在于暂停时保存进度,恰当的时机进行 seekTo 和界面数据回显及渲染 使用MVP来解耦很方便,Presenter获取数据库进度,顺便seekTo, 再将进度数据设置给...Model,调用View的render() 方法进行渲染 ?

    45610

    react native 调用原生UI组件

    React Native开发过程,有时我们想要使用原生的一个UI组件或者是js比较难以实现的功能时,我们可以react Naitve应用程序中封装和植入已有的原生组件。...React Native并没有给我们提供VideoView这个组件,那我们要播放视频的话,有两种方法:一种是借助WebView,一种就是使用原生的播放器。...方法获取视频播放时长,并想js发送事件通知。...VideoView增加了onPrepared回调方法,运行程序,可以看到打印了duration信息。...ok,上面的pause和start方法都是没有带参数的,那么如果native层需要参数呢,比如seekTo(快进),这个方法需要有一个参数,设置视频快进到的位置,那么如何处理呢?

    7.3K100

    安卓基础干货(十):安卓多媒体编程的学习

    图片、音乐、视频。 计算机表示图形的方式 1、bmp 以高质量保存所有类型的图片,用于计算机。 计算机使用像素点表示图形,每个像素点都是一个颜色,24位深度(24bit)。...解决办法:缩放图片加载到内存 步骤: 1、获得设备屏幕的分辨率; 2、得到原图的分辨率; 3、通过比较得到一个合适的比例值; 4、按照比例值缩放图片 5、把图片显示imageview 缩放图片并加载到内存...,等待数据资源准备完成才开始播放,用于播放本地的音视频文件 //mediaPlay.prepare(); //使用异步式准备方法...,使用子线程等待数据资源准备完成才开始播放,用于播放网络上的音视频文件 mediaPlay.prepareAsync();...1 引入vitamio框架 以library形式引入 2 布局定义VideoView <io.vov.vitamio.widget.VideoView android:id="@+id

    1.4K10

    Android 实现视屏播放器、边播边缓存功能、外加铲屎(IJKPlayer)

    例如根据旋转信息,判断TextureView界面的比例是横的还是竖的,如果View是竖的,而视频也是竖的,那么因为旋转了90度,那么让视频的高显示为屏幕的宽度,从新计算旋转的宽度。...逻辑播放器中统一分发各种状态,把被播放的manager状态同步到这里,之后你想要在哪个逻辑播放器里播放只需要对应的设置状态把manager的监听同步过来。...既然是FrameLayout,那么我们往他里面塞东西就好了,这里我们可以GSYVideoPlayer里面写一个方法点击全屏按钮的时候: 隐藏状态栏,清除当前TextureView。...3、IJKPLAY库里还封装了exoplayer谷歌干儿子,用法也基本一致,这个播放器自己内部判断旋转,不会有上面的seekto问题,可是后台或者onPause之后的画面恢复速度堪忧啊,各位遇到过吗?...//不要忘记配置activity,所有背景的activity android:configChanges="orientation|keyboardHidden|screenSize" 7、普通列表播放视频快速移动可能出现的错位问题

    2.7K30
    领券