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

Android編程實現(xiàn)播放音頻的方法示例

 更新時間:2017年08月01日 12:04:42   作者:dodo-yufan  
這篇文章主要介紹了Android編程實現(xiàn)播放音頻的方法,結(jié)合實例形式分析了Android使用MediaPlayer類播放音頻的相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Android編程實現(xiàn)播放音頻的方法。分享給大家供大家參考,具體如下:

在 Android 中播放音頻文件一般都是使用 MediaPlayer 類來實現(xiàn)的,它對多種格式的音 頻文件提供了非常全面的控制方法,從而使得播放音樂的工作變得十分簡單。下表列出了 MediaPlayer 類中一些較為常用的控制方法。

方法名

功能描述

setDataSource()

設(shè)置要播放的音頻文件的位置。

prepare()

在開始播放之前調(diào)用這個方法完成準備工作。

start()

開始或繼續(xù)播放音頻。

pause()

暫停播放音頻。

reset()

將 MediaPlayer 對象重置到剛剛創(chuàng)建的狀態(tài)。

seekTo()

從指定的位置開始播放音頻。

stop()

停止播放音頻。調(diào)用這個方法后的 MediaPlayer 對象無法再播放音頻。

release()

釋放掉與 MediaPlayer 對象相關(guān)的資源。

isPlaying()

判斷當前 MediaPlayer 是否正在播放音頻。

getDuration()

獲取載入的音頻文件的時長。


簡單了解了上述方法后,我們再來梳理一下 MediaPlayer 的工作流程。首先需要創(chuàng)建出一個 MediaPlayer 對象,然后調(diào)用 setDataSource()方法來設(shè)置音頻文件的路徑,再調(diào)用 prepare()方法使 MediaPlayer 進入到準備狀態(tài),接下來調(diào)用 start()方法就可以開始播放音頻,調(diào)用 pause()方法就會暫停播放,調(diào)用 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進入到準備狀態(tài)
} 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();
}
}
}

可以看到,在類初始化的時候我們就創(chuàng)建了一個 MediaPlayer 的實例,然后在 onCreate() 方法中調(diào)用了 initMediaPlayer()方法為 MediaPlayer 對象進行初始化操作。在 initMediaPlayer() 方法中,首先是通過創(chuàng)建一個 File 對象來指定音頻文件的路徑,從這里可以看出,我們需要 事 先 在 SD 卡 的 根 目 錄 下 放 置 一 個 名 為 music.mp3 的 音 頻 文 件 。 后 面 依 次 調(diào) 用 了 setDataSource()方法和 prepare()方法為 MediaPlayer 做好了播放前的準備。

接下來我們看一下各個按鈕的點擊事件中的代碼。當點擊 Play 按鈕時會進行判斷,如 果當前 MediaPlayer 沒有正在播放音頻,則調(diào)用 start()方法開始播放。當點擊 Pause 按鈕時會 判斷,如果當前 MediaPlayer 正在播放音頻,則調(diào)用 pause()方法暫停播放。當點擊 Stop 按鈕 時會判斷,如果當前 MediaPlayer 正在播放音頻,則調(diào)用 reset()方法將 MediaPlayer 重置為剛 剛創(chuàng)建的狀態(tài),然后重新調(diào)用一遍 initMediaPlayer()方法。

最后在 onDestroy()方法中,我們還需要分別調(diào)用 stop()release()方法,將與 MediaPlayer相關(guān)的資源釋放掉。 這樣一個簡易版的音樂播放器就完成了,現(xiàn)在將程序運行到手機上,界面如圖所示:

點擊一下 Play 按鈕就可以聽到優(yōu)美的音樂了,然后點擊 Pause 按鈕聲音會停住,再次點 擊 Play 按鈕會接著暫停之前的位置繼續(xù)播放。這時如果點擊一下 Stop 按鈕聲音也會停住, 但是再次點擊 Play 按鈕時,音樂就會重頭開始播放了。

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android開發(fā)入門與進階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android數(shù)據(jù)庫操作技巧總結(jié)》、《Android文件操作技巧匯總》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)

希望本文所述對大家Android程序設(shè)計有所幫助。

相關(guān)文章

  • Android Studio導入jar包過程詳解

    Android Studio導入jar包過程詳解

    這篇文章主要介紹了Android Studio導入jar包過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 詳解Flutter中的數(shù)據(jù)傳遞

    詳解Flutter中的數(shù)據(jù)傳遞

    這篇文章主要介紹了Flutter中的數(shù)據(jù)傳遞的相關(guān)資料,幫助大家更好的理解和學習使用Flutter,感興趣的朋友可以了解下
    2021-04-04
  • Android使用手勢實現(xiàn)翻頁效果

    Android使用手勢實現(xiàn)翻頁效果

    這篇文章主要介紹了Android使用手勢實現(xiàn)翻頁效果,本程序使用了一個ViewFlipper組件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Android權(quán)限機制深入分析講解

    Android權(quán)限機制深入分析講解

    Android的權(quán)限管理遵循的是“最小特權(quán)原則”,即所有的Android應用程序都被賦予了最小權(quán)限。一個Android應用程序如果沒有聲明任何權(quán)限,就沒有任何特權(quán)
    2022-12-12
  • android虛擬鍵盤彈出遮擋登陸按鈕問題的解決方法

    android虛擬鍵盤彈出遮擋登陸按鈕問題的解決方法

    這篇文章主要介紹了android虛擬鍵盤彈出遮擋登陸按鈕問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android ViewFlipper用法實例分析

    Android ViewFlipper用法實例分析

    這篇文章主要介紹了Android ViewFlipper用法,結(jié)合實例形式分析了ViewFlipper圖片操作的相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • android安裝后啟動出錯解決

    android安裝后啟動出錯解決

    大家好,本篇文章主要講的是android安裝后啟動出錯解決,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Android開發(fā)基礎(chǔ)簡化Toast調(diào)用方法詳解

    Android開發(fā)基礎(chǔ)簡化Toast調(diào)用方法詳解

    這篇文章主要為大家介紹了Android開發(fā)基礎(chǔ)簡化Toast調(diào)用方法的相關(guān)資料,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Android獲取文字高度的三種方法

    Android獲取文字高度的三種方法

    這篇文章主要給大家介紹了Android獲取文字高度的三種方法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • android獲取音樂文件的內(nèi)置專輯圖片實現(xiàn)思路及代碼

    android獲取音樂文件的內(nèi)置專輯圖片實現(xiàn)思路及代碼

    獲取音樂文件的內(nèi)置專輯圖片這是在播放音樂時的一個很不錯的功能,下面與大家分享下具體的實現(xiàn)思路,有類似需求的朋友可以參考下哈
    2013-06-06

最新評論