Android使用MediaPlayer播放音乐文件
来源:互联网 发布:微商版微信是什么软件 编辑:程序博客网 时间:2024/05/18 18:18
这里主要介绍的是SeekBar拖动条和MediaPlayer播放器;
最近项目添加一个音乐播放页面,让用户可以试听警报声,所以实现单曲播放,但是只要单曲可以实现,多曲也非常简单;
首先看下布局文件,在这只复制SeekBar:(其他的布局文件太简单了,如果想看可以下载demo)
<!-- android:max="100" 设置最大进度 android:progress="0" 设置当前进度 android:secondaryProgress="":设置第二进度 android:thumb="": 设置滑动按鈕的图片 android:progressDrawable="":进度条背景图片 --> <SeekBar android:id="@+id/seekbar" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:layout_weight="1" android:max="100" android:padding="10dp" android:progress="0" android:progressDrawable="@drawable/po_seekbar" android:thumb="@mipmap/img_point_seekbar" />SeekBar的背景图片需要自己创建,在drawable文件夹下创建po_seekbar.xml文件:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--进度条北京--> <item android:id="@android:id/background"> <shape> <solid android:color="#c3c9d4" /> </shape> </item> <!--缓冲背景颜色,没有用到(如果网络加载视频文件可以用到)--> <item android:id="@android:id/secondaryProgress"> <clip> <shape> <solid android:color="#ff0000" /> </shape> </clip> </item> <!--已加载的背景颜色--> <item android:id="@android:id/progress"> <clip> <shape> <solid android:color="#34b282" /> </shape> </clip> </item></layer-list>
播放音乐非常简单,按照官方要求初始化MediaPlayer即可:
MediaPlayer mediaPlayer = new MediaPlayer(); //音乐播放完成的监听 mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { //真实项目中可根据需求更改 } });
//第一步:重置 mediaPlayer.reset(); //第二步:设置数据源(这里播放的是本地文件,可播放其他文件) mediaPlayer.setDataSource(activity, musicUri); //第三步:准备 mediaPlayer.prepare(); //第四步:播放 mediaPlayer.start();
// 获取当前播放的音乐的总时长,当前进度 int duration = mediaPlayer.getDuration(); int currentPosition = mediaPlayer.getCurrentPosition();
//暂停 private void pause() { if (mediaPlayer != null && mediaPlayer.isPlaying()) //暂停 mediaPlayer.pause(); //停止timer if (timer != null) { timer.cancel(); timer = null; } }
//继续播放 private void continuePlay() { if (mediaPlayer != null) // start();播放、继续播放 mediaPlayer.start(); //继续播放,重新开启timer getProgressByTimer(); }再次点击暂停;
实现拖拽播放:
首先给SeekBar设置拖拽监听:
//设置进度改变监听 mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { //进度改变回调 public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {} //开始拖拽回调 public void onStartTrackingTouch(SeekBar seekBar) {} //停止拖拽回调 public void onStopTrackingTouch(SeekBar seekBar) { //获取当前拖拽的位置 int dragedProgress = seekBar.getProgress(); //记录拖拽的位置 Constants.CURRENT_PROGRESS=dragedProgress; musicUtils.start(); } });当停止拖拽时记录拖拽的位置,MediaPlayer可根据拖拽位置播放;
//拖拽 private void dragPlay() { if (mediaPlayer != null) { //播放指定位置 mediaPlayer.seekTo(Constants.CURRENT_PROGRESS); } }
我们这里只是为了让用户试听报警音乐,所以并没有过多的逻辑,但是MediaPlayer主要的功能方法都用到了;
点击打开链接免费下载源码
0 0
- Android使用MediaPlayer播放音乐文件
- 使用MediaPlayer播放音乐文件
- Android mediaplayer 播放本地音乐文件
- 使用MediaPlayer控件播放MP3等音乐文件
- 使用MediaPlayer播放音乐文件的简单例子
- android播放音乐文件代码
- Android 播放音乐文件
- 使用 libZPlay 播放音乐文件
- android使用MediaPlayer播放音频
- Android使用MediaPlayer播放视频
- 使用Android MediaPlayer播放媒体文件
- Android 使用MediaPlayer播放音频
- Android 播放音乐文件与视频文件
- android播放音乐文件后退出
- android SoundPool播放简短音乐文件
- 使用mcisendstring重复播放音乐文件
- 用MediaPlayer播放assets中的音乐文件出现的问题
- android-MediaPlayer的基本使用-播放音频视频
- GD 和图像处理 函数
- uva705
- java类集中的SortedSet接口
- MaterialDesin
- Android如何查看手机网卡信息和ip信息
- Android使用MediaPlayer播放音乐文件
- hibernate 映射组件 和 使用类集合,映射其他的表
- 自适应辛普森模板
- 根据缩略的宽高比例和设定的最大宽高设置图片的宽高 长图会截取中间一段
- Intellij Idea导入eclipse项目和依赖处理
- 设置vpn
- jbox读取请稍候 设置与关闭
- ExtJS弹窗刷新父页面
- BareTail工具查看Mysql实时执行的Sql语句