本文實例為大家分享了Android音樂播放器的具體代碼,供大家參考,具體內容如下
1.播放項目內的音樂
package com.thm.g150820_android26_playmusic;import Android.media.MediaPlayer; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageButton; import android.widget.SeekBar;public class MainActivity extends AppCompatActivity {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.seekBar);seekBar.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 progress = seekBar.getProgress(); //跳轉到某個位置播放 mediaPlayer.seekTo(progress); }});}public void isPlayOrPause(View view){ //把View強轉為ImageButton ImageButton imageButton = (ImageButton) view;if(mediaPlayer==null) { //實例化MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.yao); //開始播放 mediaPlayer.start(); //圖標修改為暫停的圖標 imageButton.setImageResource(android.R.drawable.ic_media_pause); //獲取音樂的總時長 int duration = mediaPlayer.getDuration(); //設置進度條的最大值為音樂的總時長 seekBar.setMax(duration); new MyThre().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 MyThre extends Thread{ @Override public void run() { super.run(); while(seekBar.getProgress()<=seekBar.getMax()){ //獲取當前音樂播放的位置 int currentPosition = mediaPlayer.getCurrentPosition(); //讓進度條動起來 seekBar.setProgress(currentPosition); } }}}2.播放內存卡中的音樂
package com.thm.g150820_android26_playmusic;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 MainActivity extends AppCompatActivity { 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.seekBar); seekBar.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 progress = seekBar.getProgress(); //跳轉到某個位置播放 mediaPlayer.seekTo(progress); } }); } public void isPlayOrPause(View view){ //把View強轉為ImageButton ImageButton imageButton = (ImageButton) view; if(mediaPlayer==null) { //實例化MediaPlayer //播放應用內的音樂 //mediaPlayer = MediaPlayer.create(this, R.raw.yao); //播放內存卡中的音樂 mediaPlayer = new MediaPlayer(); //設置類型 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); //設置音樂路徑 try { mediaPlayer.setDataSource(this, Uri.parse("storage/sdcard0/Music/a.mp3")); //播放之前準備一下 mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } //開始播放 mediaPlayer.start(); //圖標修改為暫停的圖標 imageButton.setImageResource(android.R.drawable.ic_media_pause); //獲取音樂的總時長 int duration = mediaPlayer.getDuration(); //設置進度條的最大值為音樂的總時長 seekBar.setMax(duration); new MyThre().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 MyThre extends Thread{ @Override public void run() { super.run(); while(seekBar.getProgress()<=seekBar.getMax()){ //獲取當前音樂播放的位置 int currentPosition = mediaPlayer.getCurrentPosition(); //讓進度條動起來 seekBar.setProgress(currentPosition); } } }}3.添加讀取內存的權限

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答