android studio 36個人音樂播放器 mp3

佈局文件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;
            }
        }
    };
}




在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章