Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android簡易音樂播放器實現代碼

Android簡易音樂播放器實現代碼

編輯:關於Android編程

本文實例為大家分享了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.添加讀取內存的權限

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved