代码如下
package com.example.android_playmusic;
import android.os.Bundle;
import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.view.Menu;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class MainActivity extends Activity {
private MediaPlayer mediaPlayer;
private SeekBar seekBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seekBar = (SeekBar) findViewById(R.id.seekBar1);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
//获取拖动结束后的位置
int progress=seekBar.getProgress();
mediaPlayer.seekTo(progress);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// TODO Auto-generated method stub
}
});
}
public void isplayOrPause(View view){
final ImageButton imageButton=(ImageButton) view;
if(mediaPlayer==null){
//实例化MediaPlayer
//播放应用内的音乐
// mediaPlayer = MediaPlayer.create(this, R.raw.shinian);
//播放内手机内存卡中的音乐
mediaPlayer=new MediaPlayer();
//设置类型
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
//设置音源
try {
// mediaPlayer.setDataSource(this,Uri.parse("file://mnt/sdcard/Music/shinian.mp3"));
//播放网络音乐
mediaPlayer.setDataSource(this,Uri.parse("http://172.20.10.4/shinian.mp3"));
//准备一下(获取内存卡中的音乐)
// mediaPlayer.prepare();
//准备(网络上的)
mediaPlayer.prepareAsync();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
//设置准备完成的监听
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
// TODO Auto-generated method stub
mediaPlayer.start();
//吧图标修改为暂停的图标
imageButton.setImageResource(android.R.drawable.ic_media_pause);
//获取音乐的总时长
int duration=mediaPlayer.getDuration();
//设置进度条的最大值为音乐的总时长
seekBar.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() {
// TODO Auto-generated method stub
super.run();
while(seekBar.getProgress()<=seekBar.getMax()){
//获取当前音乐的位置
int currentPosition=mediaPlayer.getCurrentPosition();
//让进度条动起来
seekBar.setProgress(currentPosition);
}
}
}
}
然后在配置文件里面配置
<permission android:name="android.permission.READ_EXTERNAL_STORAGE"></permission>
<!--联网权限-->
<permission android:name="android.permission.INTERNET"></permission>