activity_main.xml
1.手机内存(应用内)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.zking.administrator.g160628_android27_palymeusic.MainActivity"><SeekBarandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/sb_main_bar"/><ImageButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@android:drawable/ic_media_play"android:onClick="PlayOrPause"/>
</LinearLayout>
public class MainActivity extends AppCompatActivity {private MediaPlayer mediaplayer;private SeekBar sb_main_bar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sb_main_bar = (SeekBar) findViewById(R.id.sb_main_bar);/*** 给进度条设置滑动监听* 一定要在滑完之后才能放,* 如果你是在onProgressChanged里开始做,就会实现DJ的效果*/sb_main_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Override//进度条改变public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {}@Override//开始滑public void onStartTrackingTouch(SeekBar seekBar) {}@Override//停止滑public void onStopTrackingTouch(SeekBar seekBar) {//获取当前进度条的位置int currentPosition=seekBar.getProgress();//跳转到某个位置进行播放mediaplayer.seekTo(currentPosition);}});}public void PlayOrPause(View view){//把view强转为ImageButtonImageButton imageButton= (ImageButton) view;//实例化MediaPlayer//第一次进入判断mediaplayer为空就执行操作if(mediaplayer==null){mediaplayer = MediaPlayer.create(this, R.raw.s8);//开始mediaplayer.start();//暂停图标imageButton.setImageResource(android.R.drawable.ic_media_pause);//音乐只要一播放,获取音乐的播放时长int time=mediaplayer.getDuration();//设置进度条的最大值为音乐的播放时长sb_main_bar.setMax(time);new MyThread().start();}else if(mediaplayer.isPlaying()){//如果正在播放mediaplayer.isPlaying()暂停//暂停mediaplayer.pause();//播放图标imageButton.setImageResource(android.R.drawable.ic_media_play);}else{//如果你没用播放它会重新开始,如果是暂停的状态你点start就会接着放//在这里没有所谓的接着放的方法mediaplayer.start();//暂停图标imageButton.setImageResource(android.R.drawable.ic_media_pause);}}//要让进度条动起来就要用到子线程class MyThread extends Thread{@Overridepublic void run() {super.run();//第一种:拿到进度条的当前进度,如果它小于最大值while(sb_main_bar.getProgress()<sb_main_bar.getMax()){//循环一次,获取音乐当前的播放位置int currentPosition=mediaplayer.getCurrentPosition();//音乐播放到这里进度条也设置到哪里sb_main_bar.setProgress(currentPosition);}}}
}
2.内存卡
public class MainActivity extends AppCompatActivity {private MediaPlayer mediaplayer;private SeekBar sb_main_bar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sb_main_bar = (SeekBar) findViewById(R.id.sb_main_bar);/*** 给进度条设置滑动监听* 一定要在滑完之后才能放,* 如果你是在onProgressChanged里开始做,就会实现DJ的效果*/sb_main_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Override//进度条改变public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {}@Override//开始滑public void onStartTrackingTouch(SeekBar seekBar) {}@Override//停止滑public void onStopTrackingTouch(SeekBar seekBar) {//获取当前进度条的位置int currentPosition=seekBar.getProgress();//跳转到某个位置进行播放mediaplayer.seekTo(currentPosition);}});}public void PlayOrPause(View view){//把view强转为ImageButtonImageButton imageButton= (ImageButton) view;//实例化MediaPlayer//第一次进入判断mediaplayer为空就执行操作if(mediaplayer==null){//播放内存卡里的音频//内存卡的路径if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){String sdPath=Environment.getExternalStorageDirectory().getAbsolutePath();mediaplayer=new MediaPlayer();//设置音频流的类型mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置音源try {mediaplayer.setDataSource(this, Uri.parse("file://"+sdPath+"/s8.mp3"));//播放内存卡里的音频,它需要准备一下才会播放(缓冲一下)mediaplayer.prepare();} catch (IOException e) {e.printStackTrace();}mediaplayer.start();//暂停图标imageButton.setImageResource(android.R.drawable.ic_media_pause);//音乐只要一播放,获取音乐的播放时长int time=mediaplayer.getDuration();//设置进度条的最大值为音乐的播放时长sb_main_bar.setMax(time);new MyThread().start();}}else if(mediaplayer.isPlaying()){//如果正在播放mediaplayer.isPlaying()暂停//暂停mediaplayer.pause();//播放图标imageButton.setImageResource(android.R.drawable.ic_media_play);}else{//如果你没用播放它会重新开始,如果是暂停的状态你点start就会接着放//在这里没有所谓的接着放的方法mediaplayer.start();//暂停图标imageButton.setImageResource(android.R.drawable.ic_media_pause);}}//要让进度条动起来就要用到子线程class MyThread extends Thread{@Overridepublic void run() {super.run();//第一种:拿到进度条的当前进度,如果它小于最大值while(sb_main_bar.getProgress()<sb_main_bar.getMax()){//循环一次,获取音乐当前的播放位置int currentPosition=mediaplayer.getCurrentPosition();//音乐播放到这里进度条也设置到哪里sb_main_bar.setProgress(currentPosition);}}}
}

AndroidManifest.xml

<!--播放内存卡里的音频用到的权限--><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
3.网络
public class MainActivity extends AppCompatActivity {private MediaPlayer mediaplayer;private SeekBar sb_main_bar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sb_main_bar = (SeekBar) findViewById(R.id.sb_main_bar);/*** 给进度条设置滑动监听* 一定要在滑完之后才能放,* 如果你是在onProgressChanged里开始做,就会实现DJ的效果*/sb_main_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Override//进度条改变public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {}@Override//开始滑public void onStartTrackingTouch(SeekBar seekBar) {}@Override//停止滑public void onStopTrackingTouch(SeekBar seekBar) {//获取当前进度条的位置int currentPosition=seekBar.getProgress();//跳转到某个位置进行播放mediaplayer.seekTo(currentPosition);}});}public void PlayOrPause(View view){//把view强转为ImageButtonfinal ImageButton imageButton= (ImageButton) view;//实例化MediaPlayer//第一次进入判断mediaplayer为空就执行操作if(mediaplayer==null){if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {String sdPath = Environment.getExternalStorageDirectory().getAbsolutePath();mediaplayer = new MediaPlayer();//设置音频流的类型mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置音源try {mediaplayer.setDataSource(this, Uri.parse("http://193.168.4.247:8080/s8.mp3"));//网络音乐要用异步准备mediaplayer.prepareAsync();} catch (IOException e) {e.printStackTrace();}//设置准备监听mediaplayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Override//准备的public void onPrepared(MediaPlayer mp) {mediaplayer.start();//暂停图标imageButton.setImageResource(android.R.drawable.ic_media_pause);//音乐只要一播放,获取音乐的播放时长int time = mediaplayer.getDuration();//设置进度条的最大值为音乐的播放时长sb_main_bar.setMax(time);new MyThread().start();}});}}else if(mediaplayer.isPlaying()){//如果正在播放mediaplayer.isPlaying()暂停//暂停mediaplayer.pause();//播放图标imageButton.setImageResource(android.R.drawable.ic_media_play);}else{//如果你没用播放它会重新开始,如果是暂停的状态你点start就会接着放//在这里没有所谓的接着放的方法mediaplayer.start();//暂停图标imageButton.setImageResource(android.R.drawable.ic_media_pause);}}//要让进度条动起来就要用到子线程class MyThread extends Thread{@Overridepublic void run() {super.run();//第一种:拿到进度条的当前进度,如果它小于最大值while(sb_main_bar.getProgress()<sb_main_bar.getMax()){//循环一次,获取音乐当前的播放位置int currentPosition=mediaplayer.getCurrentPosition();//音乐播放到这里进度条也设置到哪里sb_main_bar.setProgress(currentPosition);}}}
}

AndroidManifest.xml

    <!--网络权限--><uses-permission android:name="android.permission.INTERNET"></uses-permission>

Android多媒体(音乐播放器)相关推荐

  1. 基于android平台多媒体播放器的设计与实现,基于Android的多媒体音乐播放器设计论文...

    中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2016)03-0240-02 随着计算机网络与手机的迅速发展,各种音乐资源成为人们生活中必不可少的一部分,音乐播放软件成了手机必 ...

  2. android 音乐播放器 获取sd卡所有音乐文件,Android Studio音乐播放器无法读取SD卡,只有内部存储器...

    我很抱歉,如果这原来是一个愚蠢的问题,它可能会成为一个快速修复,但我只是无法弄清楚.我在android studio中创建了音乐播放器,并且没有任何sdcard上的歌曲不会显示在列表视图中,只有内部内 ...

  3. 【Android】音乐播放器APP的设计与实现

    [Android]音乐播放器APP的设计与实现 一.界面设计 二.核心代码 一.界面设计 (1)注册登录 (2)主界面 (3)音乐播放器 可以实现开始,暂停,下一首,上一首功能:滑动进度条可以改变音乐 ...

  4. 三款Android平台音乐播放器多方位对比

    音乐播放器作为重要的娱乐工具,在PC端异常重要,在移动端同样如此.移动端的音乐播放器很多,巨头们纷纷在这个领域布局,腾讯百度等均拥有各自的移动端音乐播放器.爱好音乐的机友们也面临较多的选择. 小编在这 ...

  5. android仿音乐播放器,Android仿音乐播放器功能

    本文实例为大家分享了Android仿音乐播放器功能的具体代码,供大家参考,具体内容如下 读取本地音乐文件 源代码: import android.media.MediaPlayer; import a ...

  6. Android 自定义音乐播放器实现

    Android自定义音乐播放器 一:首先介绍用了哪些Android的知识点: 1 MediaPlayer工具来播放音乐 2 Handle.因为存在定时任务(歌词切换,动画,歌词进度条变换等)需要由Ha ...

  7. 基于嵌入式linux的音乐播放器设计,基于嵌入式Linux的多媒体音乐播放器的设计与实现...

    中图分类号:TP316.5 文献标识码:A 文章编号:1009-2552(2009)06-0102-03 基于嵌入式Linux的多媒体音乐播放器的设计与实现 王 奇 (黑龙江八一农垦大学信息技术学院, ...

  8. android 小型音乐播放器(实现播放、下一首、上一首、自动播放、随机播放按钮、当前播放歌曲界面)

    该文章主要针对 android 的音乐播放器软件进行简单的功能添加:播放.断点播放.停止.上一曲.下一曲.随机播放.显示当前播放歌曲(后续会为当前显示的播放添加动画): 软件开发流程: 1.先向内存卡 ...

  9. Android在线音乐播放器

    波尼音乐 系列文章 Android开源在线音乐播放器--波尼音乐 Android开源音乐播放器之播放器基本功能 Android开源音乐播放器之高仿云音乐黑胶唱片 Android开源音乐播放器之自动滚动 ...

最新文章

  1. 鱼油账号记录程序 - 零基础入门学习Delphi38
  2. 表单form类型数据转换为数组array
  3. feign调用soap_Spring Cloud 组件 —— feign
  4. nyoj1311勤奋的涟漪
  5. oracle索引自增函数,oracle生成动态前缀且自增号码的函数分享
  6. Chapter7-3_BERT and its family - ELMo, BERT, GPT, XLNet, MASS, BART, UniLM, ELECTRA, and more
  7. Leetcode--260. 只出现一次的数字Ⅲ
  8. 网站布局中遇到的一些问题
  9. OpenGL(二)——OpenGL图形绘制
  10. 贺利坚老师汇编课程74笔记:按下esc键改变显示颜色
  11. Android 圆形颜色拾取器代码,android 颜色拾取控件 ColorPickerDialog
  12. xp下固态硬盘测试软件,XP真的老矣?SSD实战XP/Win7/Win8系统
  13. Web前端html中通过CSS来设置div背景颜色透明度
  14. 朱松纯:走向通用人工智能——从大数据到大任务
  15. 影像去雾软件(雾气消除)免费版
  16. CPU当中的分支预测
  17. 本科生如何学习科研方法论
  18. 80V转5V,恒压可调恒流电源PCB设计建议规范PW2153
  19. IIS安装问题 找不到文件 iis_asps05kj.asp
  20. mysql安装问题:由于找不到msvcp120.dll

热门文章

  1. 跟着官方文档学DGL框架第七天——下载和处理数据集
  2. 今日份分享!1700份PPT模板,有需要自取了....
  3. java 护眼_护眼模式的彻底设置
  4. matlab双线性z变换法设计数字低通滤波器
  5. 论文:Multi-Target Position and Velocity Estimation Using OFDM Communication Signals
  6. 电子政务的发展及对策研究
  7. Chrome浏览器同一窗口每次请求sessionId不同问题的一种解决办法分享
  8. 自助柜员机属于微型计算机吗,银行自助柜员机语音提示很给力
  9. echars 饼图环形图组件修改 自定义图例 重新渲染 显示对应颜色对应区域
  10. Excel表格模板:主营收入利润表下载