在 Android 應用開發中,播放音訊是一項常見的需求。Android 平台提供了 MediaPlayer 這個強大的 API 來處理音訊與視訊播放。在今天的文章中,我們將介紹如何使用 MediaPlayer 來實現基本的音訊播放功能,並探討它的主要方法和使用技巧。
MediaPlayer 是 Android 提供的一個多媒體播放類別,能夠播放來自應用資源、檔案系統、網路或其他 URI 的音訊和視訊檔案。它不僅能處理基本的播放控制,還提供了許多便利的回調方法來處理異常和準備事件。
首先你需要先:
準備音檔:首先,你需要一個 .mp3 或 .wav 格式的音訊檔。你可以用任何音訊檔案(例如 5-10 秒的音樂片段)作為範例。
將音檔加入專案:
將你的音檔命名為 sample_audio.mp3 或 sample_audio.wav。
將音檔複製到 Android 專案的 res/raw/ 資料夾下。如果 raw 資料夾不存在,你可以自己建立它。
路徑應該是:app/src/main/res/raw/sample_audio.mp3
以下是一個簡單的 MediaPlayer 應用範例。
package com.example.mediaplayerdemo;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
private Button btnPlay, btnPause, btnStop;
private TextView tvStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPlay = findViewById(R.id.btnPlay);
btnPause = findViewById(R.id.btnPause);
btnStop = findViewById(R.id.btnStop);
tvStatus = findViewById(R.id.tvStatus);
// 初始化 MediaPlayer,播放來自 res/raw 的音訊檔案
mediaPlayer = MediaPlayer.create(this, R.raw.sample_audio);
btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start(); // 播放音訊
tvStatus.setText("播放狀態:播放中...");
}
}
});
btnPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause(); // 暫停音訊
tvStatus.setText("播放狀態:已暫停");
}
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop(); // 停止音訊
tvStatus.setText("播放狀態:已停止");
// 必須重新準備 MediaPlayer 才能再次播放
mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.sample_audio);
}
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<!-- 播放按鈕 -->
<Button
android:id="@+id/btnPlay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="播放音訊"
android:layout_marginTop="20dp" />
<!-- 暫停按鈕 -->
<Button
android:id="@+id/btnPause"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="暫停音訊"
android:layout_marginTop="20dp" />
<!-- 停止按鈕 -->
<Button
android:id="@+id/btnStop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="停止音訊"
android:layout_marginTop="20dp" />
<!-- 狀態顯示 -->
<TextView
android:id="@+id/tvStatus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="播放狀態:未播放"
android:layout_marginTop="30dp"
android:textSize="18sp"
android:textColor="#000000" />
</LinearLayout>
MediaPlayer 是一個功能強大的工具,能夠簡單地整合至 Android 應用中,用來播放音訊和視訊檔案。在實際應用中,我們可以擴展這個基礎範例,加入更多的功能,例如進度條控制、音量調整、背景播放等。希望這篇文章能夠幫助你快速上手 MediaPlayer 並實現基本的音訊播放功能。