概述
1.从内存和内存卡中播放音频
public class MainActivity extends AppCompatActivity { private SeekBar sb_id; private MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sb_id = (SeekBar) findViewById(R.id.sb_id); //SeekBar //给进度条设置滑动的监听 sb_id.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { int progress=seekBar.getProgress(); //在当前位置播放 mediaPlayer.seekTo(progress); } }); } public void button(View view){ final ImageButton imageButton= (ImageButton) view; if(mediaPlayer ==null){ mediaPlayer = MediaPlayer.create(this, R.raw.sa);//播放内存音频 /* // 播放内存卡中音频 mediaPlayer=new MediaPlayer(); //设置音频 try { mediaPlayer.setDataSource(this, Uri.parse("file://手机存储/qqmusic/song/seve.mp3")); //准备 mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); }*/ mediaPlayer.start(); //播放停止 //获取音乐的总时长 int duration=mediaPlayer.getDuration(); //将进度条设置最大值为:音乐的总时长 sb_id.setMax(duration); imageButton.setImageResource(android.R.drawable.ic_media_pause); }else if(mediaPlayer.isPlaying()){ mediaPlayer.pause(); imageButton.setImageResource(android.R.drawable.ic_media_play); }else{ mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); } } class MyThread extends Thread{ @Override public void run() { super.run(); while(sb_id.getProgress()<=sb_id.getMax()){ //获取音乐当前播放的位置 int position=mediaPlayer.getCurrentPosition(); sb_id.setProgress(position); } } } }
播放内存卡中音频需要的权限(AndroidManifest.xml中)
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" />
2.下面是播放网络音频
public class MainAction01 extends AppCompatActivity { private SeekBar sb_id; private MediaPlayer mediaPlayer; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sb_id = (SeekBar) findViewById(R.id.sb_id); //给进度条设置滑动的监听 sb_id.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { int progress=seekBar.getProgress(); //在当前位置播放 mediaPlayer.seekTo(progress); } }); } public void button(View view){ final ImageButton imageButton= (ImageButton) view; if(mediaPlayer==null){ //播放内存中音频 //mediaPlayer = MediaPlayer.create(this, R.raw.f); //播放内存卡中文件 mediaPlayer=new MediaPlayer(); try { mediaPlayer.setDataSource(this, Uri.parse("http://193.168.4.135/internet.mp3")); mediaPlayer.prepareAsync(); } catch (IOException e) { e.printStackTrace(); } //设置准备完成的监听 mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { //下载操作(复制) mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); //获取音乐的总时长 int duration=mediaPlayer.getDuration(); //将进度条设置最大值为:音乐的总时长 sb_id.setMax(duration); new MyThread().start(); } }); }else if(mediaPlayer.isPlaying()){ mediaPlayer.pause(); imageButton.setImageResource(android.R.drawable.ic_media_play); }else{ mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); } } class MyThread extends Thread{ @Override public void run() { super.run(); while(sb_id.getProgress()<=sb_id.getMax()){ //获取音乐当前播放的位置 int position=mediaPlayer.getCurrentPosition(); sb_id.setProgress(position); } } } }
最后
以上就是精明鼠标为你收集整理的android实现简单音频播放器的全部内容,希望文章能够帮你解决android实现简单音频播放器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复