您的位置:首页 > 理论基础 > 计算机网络

android_Playmusi关于音乐播放和播放应用,内存及网络音乐

2017-02-12 14:45 288 查看
代码如下

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 音乐