first.播放应用内的音频文件
音频文件存放位置:raw目录(注意:文件名必须符合变量名规则)
创建:MediaPlayer mediaPlayer = MediaPlayer.creat(context,R.raw。文件名);
2. 判断音频是否正在播放:mediaPlayer。。正在玩();
播放:mediaPlayer.start();
暂停:mediaPlayer .pause();
音乐时间:mediaPlayer .getDuration();
音乐当前播放位置:mediaPlayer .seekTo(int);
7.播放完成事件:网络 .setOnCompletionListsener();
停止:mediaPlayer.stop();
9.释放内存:mediaPlayer.release();
second.播放SD卡上的音频文件
音频文件存放的位置:内存卡
注意:需要添加读取内存卡的权限
< uses-permission
android :name = “android.permission.READ_EXTERNAL_STORAGE” >
</ uses-permission >
1.创建:M ediaPlayer mediaPlayer = new M ediaPlayer();
2.设置播放的类型:mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
3.设置音源:mediaPlayer.setDataSource(context,Uri);
Uri uri = Uri.pase(“file:// mnt / sdcard /音频路径”);
4.准备:mediaPlayer.prepare();
5.开始播放:mediaPlayer.start();
third.播放Intenet上的音频文件
音频文件存放位置:网络
注意:需要添加联网的权限
< uses-permission android :name = “android.permission.INTERNET” > </ uses-permission >
1.创建:MediaPlayer mediaPlayer = new MediaPlayer();
2.设置播放的类型:mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
3.设置音源:mediaPlayer.setDataSource(context,Uri);
Uri uri = Uri.pase(“网络音乐文件路径”);
4.异步准备:mediaPlayer.prepareAsync();
5.监听:mediaPlayer.setOnPreparedListener
6.设置缓冲的监听器:mediaPlayer.setOnBufferingUpdateListsener
fourth.
xml文件:我们里点击ImageButton开始播放音乐
<?xml version = “1.0” encoding = “utf-8”?> < LinearLayout xmlns:android = “http://schemas.android.com/apk/res/android” android :id = “@ + id / activity_media_player” android :layout_width = “match_parent” android :layout_height = “match_parent” android :paddingBottom = “@ dimen / activity_vertical_margin” android :paddingLeft = “@ dimen / activity_horizontal_margin” android :paddingRight = “@ dimen / activity_horizontal_margin”android :paddingTop = “ @dimen/ activity_vertical_margin“ > < SeekBar android :layout_weight = “1” android :layout_width = “wrap_content” android :layout_height = “wrap_content” android :id = “@ + id / media_player_seekBar” /> < ImageButtonandroid :layout_width = “WRAP_CONTENT”android :layout_height = “WRAP_CONTENT”android :SRC = “@android:drawable/ ic_media_play”android :onClick = “playpause” /></ LinearLayout >
活动文件:三种获取方法都在这里,具体看注释
package com.zking.a24provider; import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageButton; import android.widget.SeekBar; import java.io.IOException; public class MediaPlayerActivity extends AppCompatActivity { private SeekBar media_player_seekBar ; private MediaPlayer mediaPlayer ; @Override protected void onCreate(Bundle savedInstanceState){ super .onCreate(savedInstanceState); setContentView(R.layout。activity_media_player); media_player_seekBar =(SeekBar)findViewById(R.id.media_player_seekBar); //给进度条设置拖动改变监听事件 media_player_seekBar .setOnSeekBarChangeListener( new SeekBar.OnSeekBarChangeListener(){public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){ }} @Override public void onStartTrackingTouch(SeekBar seekBar){ }} @Override public void onStopTrackingTouch(SeekBar seekBar){ //获取拖动结束后的位置 int progress = media_player_seekBar .getProgress(); //跳转到某个位置播放 mediaPlayer .seekTo(progress); }} }); }} // first.播放应用内的音频文件// //播放或暂停按钮点击事件 // public void playpause(View view){ // final ImageButton button_play =(ImageButton)view; // if(mediaPlayer == null){ // //创建mediaPlayer // mediaPlayer = MediaPlayer.create(this,R.raw.love); // mediaPlayer.start(); // //把图标修改为暂停的图标 // button_play.setImageResource(android.R.drawable.ic_media_pause); // //获取音乐的总时长 // int duration = mediaPlayer.getDuration(); // //设置进度条的最大值为音乐的总时长 // media_player_seekBar.setMax(duration); // new MyThread()。start(); //} else if(mediaPlayer.isPlaying()){ // mediaPlayer.pause(); // //把图标修改为播放的图标 // button_play.setImageResource(android.R.drawable.ic_media_play); //} else { // mediaPlayer.start(); // //把图标修改为暂停的图标 // button_play.setImageResource(android.R.drawable.ic_media_pause); //} //}// second.播放SD卡上的音频文件// //播放或暂停按钮点击事件 // public void playpause(View view){ // final ImageButton button_play =(ImageButton)view; // if(mediaPlayer == null){ // //创建mediaPlayer // mediaPlayer = new MediaPlayer(); // //设置类型 // mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); // //设置音频 // try { // mediaPlayer.setDataSource(this,Uri.parse(“file:// mnt / sdcard / i音乐/我的下载/ Roll The Dice-高姗.mp3”)); // //准备一下 // mediaPlayer.prepare(); //} catch(IOException e){ // e.printStackTrace(); //} //} else if(mediaPlayer.isPlaying()){ // mediaPlayer.pause(); // //把图标修改为播放的图标 // button_play.setImageResource(android.R.drawable.ic_media_play); //} else { // mediaPlayer.start(); // //把图标修改为暂停的图标 // button_play.setImageResource(android.R.drawable.ic_media_pause); //} //}// third.播放Intenet上的音频文件
//播放或暂停按钮点击事件
public void playpause(View view){ImageButton button_play =(ImageButton)view;
if( mediaPlayer == null){//创建mediaPlayermediaPlayer = new MediaPlayer();//设置类型
mediaPlayer .setAudioStreamType( AudioManager。STREAM_MUSIC); //设置音频try{//播放网络音乐mediaPlayer .setDataSource(this,URI.Pares(“http://192.168.0. 105:8080/chimp.mp3”));//异步准备
mediaPlayer .prepareAsync(); }
catch(IOException e){e.printStackTrace(); }//监听:准备完成的监听
mediaPlayer .setOnPreparedListener( newMediaPlayer.OnPrepared Listener(){@public void onPrepared(MediaPlayer mp){mediaPlayer .start();//把图标修改为暂停的图标 button_play .setImageResource .R.drawable.ic_media_pause);//获取音乐的总时长
INT times= MEDIAPLAYER .getDuration(); //设置进度条的最大值为音乐的总时长media_player_seekBar .setMax(times); //开始线程NEW MyThread的().start();}});
} else if( mediaPlayer .isPlaying()){mediaPlayer .pause();
//把图标修改为播放的图标
button_play.setImageResource( android.R.drawable。ic_media_play);} else {mediaPlayer .start();
//把图标修改为暂停的图标
button_play.setImageResource( android.R.drawable。ic_media_pause); }}class MyThread extends Thread {@Override public void run(){super .run();
while( media_player_seekBar.getProgress()<= media_player_seekBar .getMax()){//获取当前音乐播放的位置
int currentPosition = mediaPlayer .getCurrentPosition();//让进度条动起来media_player_seekBar .setProgress(currentPosition);
}
}
}
}