Android開(kāi)發(fā)基礎(chǔ)實(shí)現(xiàn)音頻文件的播放詳解
前言
上一篇(安卓開(kāi)發(fā)基礎(chǔ)——實(shí)現(xiàn)最簡(jiǎn)單的視頻播放我們簡(jiǎn)單的實(shí)現(xiàn)了一個(gè)播放視頻的功能,這一節(jié)我們來(lái)實(shí)現(xiàn)App對(duì)音頻文件的播放功能,本文主要是依靠MediaPlayer類去實(shí)現(xiàn)Android播放音樂(lè)的。
實(shí)現(xiàn)方法
和上一篇的播放功能實(shí)現(xiàn)類似,我們首先需要一個(gè)文件夾去放我們的音頻文件,我們?cè)趍ain文件夾下新建一個(gè)assets文件夾放入我們的音頻文件
然后我們?cè)诓季种刑砑右粡垐D片,下面加上三個(gè)處理播放控制的按鈕,播放,暫停(暫停播放),停止(正在播放就停止播放,從頭開(kāi)始)
<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對(duì)象,然后在initMediaPlayer()方法里先通過(guò)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()
最終效果
展示效果頁(yè)面:
圖片下方就是音頻控件,不過(guò)不好展示,畢竟不能放視頻到掘金上,音頻聽(tīng)不到,不過(guò)后續(xù)會(huì)把這些集合到GitHub的項(xiàng)目上,作為基礎(chǔ)復(fù)習(xí)使用。
總結(jié)
以上就是Android開(kāi)發(fā)基礎(chǔ)實(shí)現(xiàn)音頻文件的播放詳解的詳細(xì)內(nèi)容,更多關(guān)于Android開(kāi)發(fā)音頻文件播放的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android 10 啟動(dòng)之servicemanager源碼解析
這篇文章主要為大家介紹了Android 10 啟動(dòng)之servicemanager源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Android開(kāi)發(fā)之Wifi基礎(chǔ)教程
這篇文章主要介紹了Android開(kāi)發(fā)Wifi基礎(chǔ)教程,實(shí)例分析了Wifi的各種常見(jiàn)基本技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02Android實(shí)現(xiàn)系統(tǒng)狀態(tài)欄的隱藏和顯示功能
這篇文章主要介紹了Android實(shí)現(xiàn)系統(tǒng)狀態(tài)欄的隱藏和顯示功能,文中還給大家?guī)?lái)四種方法,大家可以根據(jù)自己需要參考下2018-07-07Android Back鍵點(diǎn)擊兩次退出應(yīng)用詳解及實(shí)現(xiàn)方法總結(jié)
這篇文章主要介紹了Android Back鍵點(diǎn)擊兩次退出應(yīng)用詳解及實(shí)現(xiàn)方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2016-10-10Android中自定義PopupWindow實(shí)現(xiàn)彈出框并帶有動(dòng)畫(huà)效果
這篇文章主要介紹了Android中自定義PopupWindow實(shí)現(xiàn)彈出框并帶有動(dòng)畫(huà)效果的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09Android實(shí)現(xiàn)下拉菜單Spinner效果
這篇文章主要介紹了Android實(shí)現(xiàn)下拉菜單Spinner效果,學(xué)習(xí)Spinner組件的使用方法,非常好用的一款組件,相當(dāng)于從下拉列表中選擇項(xiàng)目,感興趣的小伙伴們可以參考一下2016-04-04Android實(shí)現(xiàn)打開(kāi)手機(jī)淘寶并自動(dòng)識(shí)別淘寶口令彈出商品信息功能
最近項(xiàng)目經(jīng)理給我們安排一個(gè)活兒,基于Android開(kāi)發(fā)實(shí)現(xiàn)打開(kāi)手機(jī)淘寶,并自動(dòng)識(shí)別淘口令,彈出商品信息,今天小編就抽空給大家分享下這個(gè)需求是怎么實(shí)現(xiàn)的,需要的朋友參考下吧2017-11-11