您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Android中怎么播放音頻,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
在 Android 中播放音頻文件一般都是使用 MediaPlayer 類來實現的,它對多種格式的音 頻文件提供了非常全面的控制方法,從而使得播放音樂的工作變得十分簡單。下表列出了 MediaPlayer 類中一些較為常用的控制方法。
方法名 | 功能描述 |
setDataSource() | 設置要播放的音頻文件的位置。 |
prepare() | 在開始播放之前調用這個方法完成準備工作。 |
start() | 開始或繼續播放音頻。 |
pause() | 暫停播放音頻。 |
reset() | 將 MediaPlayer 對象重置到剛剛創建的狀態。 |
seekTo() | 從指定的位置開始播放音頻。 |
stop() | 停止播放音頻。調用這個方法后的 MediaPlayer 對象無法再播放音頻。 |
release() | 釋放掉與 MediaPlayer 對象相關的資源。 |
isPlaying() | 判斷當前 MediaPlayer 是否正在播放音頻。 |
getDuration() | 獲取載入的音頻文件的時長。 |
簡單了解了上述方法后,我們再來梳理一下 MediaPlayer 的工作流程。首先需要創建出一個 MediaPlayer 對象,然后調用 setDataSource()
方法來設置音頻文件的路徑,再調用 prepare()
方法使 MediaPlayer 進入到準備狀態,接下來調用 start()方法就可以開始播放音頻,調用 pause()方法就會暫停播放,調用 reset()
方法就會停止播放。 下面就讓我們通過一個具體的例子來學習一下吧,新建一個 PlayAudioTest 項目,然后修改 activity_main.xml 中的代碼,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/play" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Play" /> <Button android:id="@+id/pause" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Pause" /> <Button android:id="@+id/stop" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Stop" /> </LinearLayout>
布局文件中橫向放置了三個按鈕,分別用于對音頻文件進行播放、暫停和停止操作。然 后修改 MainActivity 中的代碼,如下所示:
public class MainActivity extends Activity implements OnClickListener { private Button play; private Button pause; private Button stop; private MediaPlayer mediaPlayer = new MediaPlayer(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); stop = (Button) findViewById(R.id.stop); play.setOnClickListener(this); pause.setOnClickListener(this); stop.setOnClickListener(this); initMediaPlayer(); // 初始化MediaPlayer } private void initMediaPlayer() { try { File file = new File(Environment.getExternalStorageDirectory(), "music.mp3"); mediaPlayer.setDataSource(file.getPath()); // 指定音頻文件的路徑 mediaPlayer.prepare(); // 讓MediaPlayer進入到準備狀態 } catch (Exception e) { e.printStackTrace(); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.play: if (!mediaPlayer.isPlaying()) { mediaPlayer.start(); // 開始播放 } break; case R.id.pause: if (mediaPlayer.isPlaying()) { mediaPlayer.pause(); // 暫停播放 } break; case R.id.stop: if (mediaPlayer.isPlaying()) { mediaPlayer.reset(); // 停止播放 initMediaPlayer(); } break; default: break; } } @Override protected void onDestroy() { super.onDestroy(); if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); } } }
可以看到,在類初始化的時候我們就創建了一個 MediaPlayer 的實例,然后在 onCreate() 方法中調用了 initMediaPlayer()
方法為 MediaPlayer 對象進行初始化操作。在 initMediaPlayer() 方法中,首先是通過創建一個 File 對象來指定音頻文件的路徑,從這里可以看出,我們需要 事 先 在 SD 卡 的 根 目 錄 下 放 置 一 個 名 為 music.mp3 的 音 頻 文 件 。 后 面 依 次 調 用 了 setDataSource()
方法和 prepare()
方法為 MediaPlayer 做好了播放前的準備。
接下來我們看一下各個按鈕的點擊事件中的代碼。當點擊 Play 按鈕時會進行判斷,如 果當前 MediaPlayer 沒有正在播放音頻,則調用 start()方法開始播放。當點擊 Pause 按鈕時會 判斷,如果當前 MediaPlayer 正在播放音頻,則調用 pause()方法暫停播放。當點擊 Stop 按鈕 時會判斷,如果當前 MediaPlayer 正在播放音頻,則調用 reset()方法將 MediaPlayer 重置為剛 剛創建的狀態,然后重新調用一遍 initMediaPlayer()方法。
最后在 onDestroy()
方法中,我們還需要分別調用 stop()
和 release()
方法,將與 MediaPlayer相關的資源釋放掉。 這樣一個簡易版的音樂播放器就完成了,現在將程序運行到手機上
關于Android中怎么播放音頻就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。