佈局文件xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
tools:layout_editor_absoluteX="27dp"
tools:layout_editor_absoluteY="19dp" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
tools:layout_editor_absoluteX="133dp"
tools:layout_editor_absoluteY="18dp" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
tools:layout_editor_absoluteX="234dp"
tools:layout_editor_absoluteY="17dp" />
<SeekBar
android:id="@+id/seekBar"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
第二步加入權限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
第三步新建類
package com.example.mymusic1;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Environment;
import android.widget.Toast;
import java.io.IOException;
public class MP3Player {
private MediaPlayer mp;
private String path;
private int length;
public MP3Player(Context ctx) {
mp = new MediaPlayer();
// 獲取內部存儲器絕對路徑/sdcard/Download/ANewDay.mp3
path = Environment.getExternalStorageDirectory().getAbsolutePath();
path="/sdcard/Download/";
Toast.makeText(ctx, path, Toast.LENGTH_LONG).show();
}
public int getPosition() {
// 獲取當前位置
return mp.getCurrentPosition();
}
public int getLength() {
return length;
}
public void init(String fileName) {
path = path + "/" + fileName;
try {
// 存儲在SD卡或其他文件路徑下的媒體文件
mp.setDataSource(path);
// 音樂文件準備
mp.prepare();
// 音樂文件長度
length = mp.getDuration();
} catch (IOException e) {
e.printStackTrace();
}
}
public void play() {
mp.start();
}
public void pause() {
mp.pause();
}
public void stop() {
mp.stop();
}
public void destroy() {
mp.release();
}
}
第四步 MainActivity java
package com.example.mymusic1;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
private Button btnPlay;
private Button btnPause;
private Button btnStop;
private SeekBar sk;
private MP3Player mp3Player;
@TargetApi(Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] permission = {"android.permission.READ_EXTERNAL_STORAGE"};
// 獲取動態權限
this.requestPermissions(permission, 0);
mp3Player = new MP3Player(MainActivity.this);
mp3Player.init("ANewDay.mp3");
btnPlay = (Button)findViewById(R.id.button);
btnPause = (Button)findViewById(R.id.button2);
btnStop = (Button)findViewById(R.id.button3);
sk = (SeekBar)findViewById(R.id.seekBar);
// 設置播放條最大長度
sk.setMax(mp3Player.getLength());
btnPlay.setOnClickListener(playerOnClickListener);
btnPause.setOnClickListener(playerOnClickListener);
btnStop.setOnClickListener(playerOnClickListener);
// 計時器
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
// 設置當前播放條位置
sk.setProgress(mp3Player.getPosition());
}
};
timer.schedule(timerTask, 0 , 10);
}
public View.OnClickListener playerOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (view.getId()) {
default:
break;
case R.id.button:
mp3Player.play();
break;
case R.id.button2:
mp3Player.pause();
break;
case R.id.button3:
mp3Player.stop();
break;
}
}
};
}
android studio 36個人音樂播放器 mp3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.