android保存播放进度,Android MediaPlayer控制进度播放音频
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控制进度播放音频相关推荐
- Android MediaPlayer控制进度播放音频
Android MediaPlayer控制进度播放音频 本文简单介绍MediaPlayer获取播放进度和设置进度播放. 1.获取音频文件的播放时间总长度 //返回的是int的毫秒级数据/*** Get ...
- 【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )
FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 ...
- Android音乐播放器---实现Notification控制音乐播放
最近一直在学习Android服务(Service).广播接收者(BroadcastReceiver).通知(Notification)的用法,趁着刚学完的热乎劲儿,做了个音乐播放器来练手.在此,我就把 ...
- android 保存崩溃信息,Android保存每次运行崩溃报告的日志
您可以通过以下链接找到帮助 Writing crash reports into device sd card 您不需要添加外部库. import com.wordpress.doandroid.Tr ...
- android 保存 parcelable对象,Android 使用序列化Serializable和Parcelable
Android 序列化Serializable和Parcelable使用和区别 一:Serializable 1.什么是序列化 将一个类对象转换成可存储,可传输状态的过程. 2.什么是Serializ ...
- android保存编辑信息,android文件存储之preference,解决程序界面改动信息保存
非完整的项目代码,仅有preference的存储数据和读取的部分内容. 数据存储: String str = ""; //存储所有字符串信息 String temp = " ...
- 我的Android进阶之旅------Android MediaPlayer播放mp3的实例--简易mp3播放器
大家好我们今天研究的是Android中很重要也最为复杂的媒体播放器---MediaPlayer. Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上 ...
- android通过点击播放视频,Android通过MediaPlayer实现播放视频实例
最进想通过MediaPlayer实现播放一个视频,并且SeekBar可拖动的功能,记录下来,以便查阅! 实现效果如下: android:layout_width="fill_parent&q ...
- android 实现视频播放功能,android开发之简单视频播放器(VideoView)
简单视频播放器的使用 一.简单使用videoView和MediaController实现播放控制 1.添加需要的权限 2.设置布局 android:id="@+id/main_video&q ...
最新文章
- .net实现跨页面传值
- 跟着Rocskdb 学 存储引擎:读写链路的代码极致优化
- 查看linux系统性能
- 佛教:关于时间(段)的几种描述
- Ubuntu16.04 卸载Gazebo7 安装 Gazebo9
- 双路服务器只显示一半内存,双路服务器只显示一半内存
- 【数据结构与算法】堆
- 深度学习(四十二)word2vec词向量学习笔记
- python加密文件_用 Python 加密文件
- Java的四种包访问权限
- Linux报错问题:bash: vi: command not found
- 剑指Offer——Python答案
- 190326每日一句
- R(Kmeans绘制地形图)
- 解决“无法删除文件:无法读源文件或磁盘”
- 为什么要切换IP地址?
- 使用 Datagrip 导入 Excel 数据表
- BOL简单分析(二)
- 论文阅读训练(13)
- 【基础教程】Python整数类型(int)详解