亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android簡易音樂播放器實現(xiàn)代碼

 更新時間:2020年07月29日 13:25:02   作者:Thm888  
這篇文章主要為大家詳細介紹了Android簡易音樂播放器的實現(xiàn)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android音樂播放器的具體代碼,供大家參考,具體內(nèi)容如下

1.播放項目內(nèi)的音樂

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) {
 //獲取拖動結(jié)束之后的位置
 int progress = seekBar.getProgress();
 //跳轉(zhuǎn)到某個位置播放
 mediaPlayer.seekTo(progress);
 }
});
}

public void isPlayOrPause(View view){ 
//把View強轉(zhuǎn)為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();
 //設(shè)置進度條的最大值為音樂的總時長
 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);
}
}

//寫內(nèi)部類 
class MyThre extends Thread{ 
@Override 
public void run() { 
super.run(); 
while(seekBar.getProgress()<=seekBar.getMax()){

 //獲取當前音樂播放的位置
 int currentPosition = mediaPlayer.getCurrentPosition();

 //讓進度條動起來
 seekBar.setProgress(currentPosition);
 }
 }
}
}

2.播放內(nèi)存卡中的音樂

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) {
 //獲取拖動結(jié)束之后的位置
 int progress = seekBar.getProgress();
 //跳轉(zhuǎn)到某個位置播放
 mediaPlayer.seekTo(progress);
 }
 });
 }


 public void isPlayOrPause(View view){
 //把View強轉(zhuǎn)為ImageButton
 ImageButton imageButton = (ImageButton) view;

 if(mediaPlayer==null) {
 //實例化MediaPlayer
 //播放應(yīng)用內(nèi)的音樂
 //mediaPlayer = MediaPlayer.create(this, R.raw.yao);

 //播放內(nèi)存卡中的音樂
 mediaPlayer = new MediaPlayer();

 //設(shè)置類型
 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
 //設(shè)置音樂路徑
 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();
 //設(shè)置進度條的最大值為音樂的總時長
 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);
 }
 }

 //寫線程內(nèi)部類
 class MyThre extends Thread{
 @Override
 public void run() {
 super.run();
 while(seekBar.getProgress()<=seekBar.getMax()){

 //獲取當前音樂播放的位置
 int currentPosition = mediaPlayer.getCurrentPosition();

 //讓進度條動起來
 seekBar.setProgress(currentPosition);
 }
 }
 }
}

3.添加讀取內(nèi)存的權(quán)限

更多關(guān)于播放器的內(nèi)容請點擊《java播放器功能》進行學習。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論