Android開發(fā)基礎(chǔ)實(shí)現(xiàn)音頻文件的播放詳解
前言
上一篇(安卓開發(fā)基礎(chǔ)——實(shí)現(xiàn)最簡單的視頻播放我們簡單的實(shí)現(xiàn)了一個播放視頻的功能,這一節(jié)我們來實(shí)現(xiàn)App對音頻文件的播放功能,本文主要是依靠MediaPlayer類去實(shí)現(xiàn)Android播放音樂的。
實(shí)現(xiàn)方法
和上一篇的播放功能實(shí)現(xiàn)類似,我們首先需要一個文件夾去放我們的音頻文件,我們在main文件夾下新建一個assets文件夾放入我們的音頻文件


然后我們在布局中添加一張圖片,下面加上三個處理播放控制的按鈕,播放,暫停(暫停播放),停止(正在播放就停止播放,從頭開始)
<ImageView
android:layout_width="wrap_content"
android:layout_height="300dp"
android:layout_gravity="center"
android:src="@mipmap/rabbit"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/stopAudio"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/str_stop_audio"/>
<Button
android:id="@+id/playAudio"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/str_play"/>
<Button
android:id="@+id/pauseAudio"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/str_pause"/>
</LinearLayout>
private val mediaPlayer = MediaPlayer()
在Activity中,我們首先創(chuàng)建出MediaPlayer對象,然后在initMediaPlayer()方法里先通過MediaPlayer的setDataSource()方法和prepare()方法做好播放準(zhǔn)備。
再為按鈕添加MediaPlayer的播放控制方法,其中reset()方法將MediaPlayer重置為剛剛創(chuàng)建的狀態(tài),所以需要在初始化一次,即調(diào)用我們封裝好的initMediaPlayer()方法

private fun initAudio() {
initMediaPlayer()
binding.playAudio.setOnClickListener {
if (!mediaPlayer.isPlaying) {
mediaPlayer.start()
}
}
binding.pauseAudio.setOnClickListener {
if (mediaPlayer.isPlaying) {
mediaPlayer.pause()
}
}
binding.stopAudio.setOnClickListener {
if (!mediaPlayer.isPlaying) {
mediaPlayer.reset()
initMediaPlayer()
}
}
}
//初始化MediaPlayer
private fun initMediaPlayer() {
val assetManager = assets
val fd = assetManager.openFd("music.mp3")
mediaPlayer.setDataSource(fd.fileDescriptor, fd.startOffset, fd.length)
mediaPlayer.prepare()
}
和播放視頻一樣,我們需要在onDestroy()方法中釋放資源:

//釋放資源 mediaPlayer.stop() mediaPlayer.release()
最終效果
展示效果頁面:

圖片下方就是音頻控件,不過不好展示,畢竟不能放視頻到掘金上,音頻聽不到,不過后續(xù)會把這些集合到GitHub的項(xiàng)目上,作為基礎(chǔ)復(fù)習(xí)使用。
總結(jié)
以上就是Android開發(fā)基礎(chǔ)實(shí)現(xiàn)音頻文件的播放詳解的詳細(xì)內(nèi)容,更多關(guān)于Android開發(fā)音頻文件播放的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android自定義view Path 的高級用法之搜索按鈕動畫
這篇文章主要介紹了Android自定義view Path 的高級用法之搜索按鈕動畫,需要的朋友可以參考下2017-06-06
Android開發(fā)實(shí)現(xiàn)TextView顯示豐富的文本
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)TextView顯示豐富的文本,涉及Android中TextView的使用技巧,需要的朋友可以參考下2015-12-12
Android布局技巧之include、merge與ViewStub標(biāo)簽的巧用
Android 官方提供了三個用來優(yōu)化布局的標(biāo)簽,分別是include、merge與ViewStub,下面這篇文章主要給大家介紹了關(guān)于Android布局技巧之include、merge與ViewStub標(biāo)簽巧用的相關(guān)資料,需要的朋友可以參考下2018-06-06
Android調(diào)試神器stetho使用詳解和改造
今天小編就為大家分享一篇關(guān)于Android調(diào)試神器stetho使用詳解和改造,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
Android中的TimePickerView(時間選擇器)的用法詳解
這篇文章主要介紹了Android中的TimePickerView時間選擇器的用法,這是一個第三方從底部彈出來的日期選擇器,文中結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
Android中EditText光標(biāo)的顯示與隱藏方法
這篇文章主要給大家介紹了關(guān)于Android中EditText光標(biāo)的顯示與隱藏以及Android之第一次不顯示EditText光標(biāo)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11
Android View事件分發(fā)和消費(fèi)源碼簡單理解
這篇文章主要介紹了Android View事件分發(fā)和消費(fèi)源碼簡單理解的相關(guān)資料,需要的朋友可以參考下2017-07-07

