Android MediaPlayer控制进度播放音频

本文简单介绍MediaPlayer获取播放进度和设置进度播放。

1、获取音频文件的播放时间总长度

//返回的是int的毫秒级数据

/**

* Gets the duration of the file.

*

* @return the duration in milliseconds, if no duration is available

* (for example, if streaming live content), -1 is returned.

*/

public int getDuration();

2、获取音频文件的播放时间当前时间值

//返回的是int的毫秒级数据

/**

* Gets the current playback position.

*

* @return the current position in milliseconds

*/

public int getCurrentPosition();

3、设置进度播放音频

//设置之前的毫秒数

seekTo(int msec)

//设置之前的毫秒数和播放模式

seekTo(long msec,int mode)

mode的值有如下选择:

public static final int SEEK_PREVIOUS_SYNC = 0x00; //同步播放模式,会往前一点播放,默认模式

public static final int SEEK_NEXT_SYNC = 0x01; //同步播放模式,会后一点播放

public static final int SEEK_CLOSEST_SYNC = 0x02; //同步播放模式,精确播放

public static final int SEEK_CLOSEST = 0x03; //异步播放模式,精确播放

关于SeekTo要注意的地方:

1、首次播放在线音频要在onPrepared回调中执行seekTo

mOnlineMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mp) {

if (mOnlineMediaPlayer != null) {

mp.seekTo(30 * 1000, MediaPlayer.SEEK_CLOSEST); // 30秒的位置播放

mp.start();

}

}

});

2、如果是暂停状态,再调seekTo,可以直接调

public void resumeOnlineMedia() {

if (mOnlineMediaPlayer != null) {

try {

if (!mOnlineMediaPlayer.isPlaying()) {

mOnlineMediaPlayer.seekTo(30 * 1000, MediaPlayer.SEEK_CLOSEST);

mOnlineMediaPlayer.start();

}

} catch (IllegalStateException e) {

Log.e(TAG, "resumeOnlineMedia error=" + e.getMessage());

}

}

}

共勉:2020元旦快乐。

android保存播放进度,Android MediaPlayer控制进度播放音频相关推荐

  1. Android MediaPlayer控制进度播放音频

    Android MediaPlayer控制进度播放音频 本文简单介绍MediaPlayer获取播放进度和设置进度播放. 1.获取音频文件的播放时间总长度 //返回的是int的毫秒级数据/*** Get ...

  2. 【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 ...

  3. Android音乐播放器---实现Notification控制音乐播放

    最近一直在学习Android服务(Service).广播接收者(BroadcastReceiver).通知(Notification)的用法,趁着刚学完的热乎劲儿,做了个音乐播放器来练手.在此,我就把 ...

  4. android 保存崩溃信息,Android保存每次运行崩溃报告的日志

    您可以通过以下链接找到帮助 Writing crash reports into device sd card 您不需要添加外部库. import com.wordpress.doandroid.Tr ...

  5. android 保存 parcelable对象,Android 使用序列化Serializable和Parcelable

    Android 序列化Serializable和Parcelable使用和区别 一:Serializable 1.什么是序列化 将一个类对象转换成可存储,可传输状态的过程. 2.什么是Serializ ...

  6. android保存编辑信息,android文件存储之preference,解决程序界面改动信息保存

    非完整的项目代码,仅有preference的存储数据和读取的部分内容. 数据存储: String str = ""; //存储所有字符串信息 String temp = " ...

  7. 我的Android进阶之旅------Android MediaPlayer播放mp3的实例--简易mp3播放器

    大家好我们今天研究的是Android中很重要也最为复杂的媒体播放器---MediaPlayer. Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上 ...

  8. android通过点击播放视频,Android通过MediaPlayer实现播放视频实例

    最进想通过MediaPlayer实现播放一个视频,并且SeekBar可拖动的功能,记录下来,以便查阅! 实现效果如下: android:layout_width="fill_parent&q ...

  9. android 实现视频播放功能,android开发之简单视频播放器(VideoView)

    简单视频播放器的使用 一.简单使用videoView和MediaController实现播放控制 1.添加需要的权限 2.设置布局 android:id="@+id/main_video&q ...

最新文章

  1. .net实现跨页面传值
  2. 跟着Rocskdb 学 存储引擎:读写链路的代码极致优化
  3. 查看linux系统性能
  4. 佛教:关于时间(段)的几种描述
  5. Ubuntu16.04 卸载Gazebo7 安装 Gazebo9
  6. 双路服务器只显示一半内存,双路服务器只显示一半内存
  7. 【数据结构与算法】堆
  8. 深度学习(四十二)word2vec词向量学习笔记
  9. python加密文件_用 Python 加密文件
  10. Java的四种包访问权限
  11. Linux报错问题:bash: vi: command not found
  12. 剑指Offer——Python答案
  13. 190326每日一句
  14. R(Kmeans绘制地形图)
  15. 解决“无法删除文件:无法读源文件或磁盘”
  16. 为什么要切换IP地址?
  17. 使用 Datagrip 导入 Excel 数据表
  18. BOL简单分析(二)
  19. 论文阅读训练(13)
  20. 【基础教程】Python整数类型(int)详解

热门文章

  1. POJ-3311 Hie with the Pie
  2. 简单的通过request判断客户端设备类型
  3. java淡蓝色怎么表示_最淡的蓝是什么颜色(淡蓝色配什么颜色好看)
  4. 计算机二级考过律,计算机二级考试考完后的这些事情你知道吗?
  5. ActionScript 3.0 杂乱笔记3
  6. 北京大学陈波悖论课程-期末测试-解析
  7. 在英伟达 jeason nano配置yolov5
  8. 苹果零售店十大秘诀:禁止纠正顾客发音错误
  9. 婴儿大脑MRI图谱集
  10. Unity3d设置鼠标指针的样式