Android音樂播放器制作 點(diǎn)擊歌曲實(shí)現(xiàn)播放(二)
上次我們實(shí)現(xiàn)了把手機(jī)里的音頻掃描到,然后放在list集合里面,用ListView展示在手機(jī)界面上,如果沒有看過的可以去看看本人的博客:Android音樂播放器制作(一)掃描本地音樂顯示在手機(jī)上
這次是在上一次的基礎(chǔ)上直接繼續(xù)寫代碼,幾行代碼實(shí)現(xiàn)點(diǎn)擊那首歌曲就播放那首歌曲,系統(tǒng)已經(jīng)提供了播放音頻的對(duì)象了,直接用就可以了,具體如下:
1、聲明一個(gè)MediaPlayer
private MediaPlayer mediaPlayer;//播放音頻的
2、實(shí)例化
//初始化 mediaPlayer = new MediaPlayer();
然后我們就有一個(gè)MediaPlayer的對(duì)象可以使用了
3、在initView方法里面給ListView設(shè)置一個(gè)點(diǎn)擊監(jiān)聽事件,點(diǎn)擊哪個(gè)item我們就可以得到這個(gè)item的歌曲地址,然后穿入我們創(chuàng)建的播放音頻的方法中實(shí)現(xiàn)播放:
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//創(chuàng)建一個(gè)播放音頻的方法,把點(diǎn)擊到的地址傳過去
//list.get(i).path這個(gè)就是歌曲的地址
play(list.get(i).path);
}
});
然后play方法的代碼:
/**
* 播放音頻的方法
*/
private void play(String path) {
//播放之前要先把音頻文件重置
try {
mediaPlayer.reset();
//調(diào)用方法傳進(jìn)去要播放的音頻路徑
mediaPlayer.setDataSource(path);
//異步準(zhǔn)備音頻資源
mediaPlayer.prepareAsync();
//調(diào)用mediaPlayer的監(jiān)聽方法,音頻準(zhǔn)備完畢會(huì)響應(yīng)此方法
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();//開始音頻
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
play方法里面我們調(diào)用的是mediaPlayer的異步準(zhǔn)備的方法,因?yàn)楫?dāng)歌曲很大的時(shí)候,如果不是用異步準(zhǔn)備,而是直接準(zhǔn)備播放的話,就會(huì)造成播放卡頓;然后就在mediaPlayer的準(zhǔn)備完畢的監(jiān)聽方法中調(diào)用start()中開始。
持續(xù)更新
demo下載地址:音樂播放器
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)控件拖動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)控件拖動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Android實(shí)現(xiàn)波浪線效果(xml bitmap)
這篇文章主要介紹了Android xml bitmap實(shí)現(xiàn)波浪線效果,制作過程簡單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01
Android 彈出Dialog時(shí)隱藏狀態(tài)欄和底部導(dǎo)航欄的方法
這篇文章主要介紹了Android 彈出Dialog時(shí)隱藏狀態(tài)欄和底部導(dǎo)航欄的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Android開發(fā)之在程序中時(shí)時(shí)獲取logcat日志信息的方法(附demo源碼下載)
這篇文章主要介紹了Android開發(fā)之在程序中時(shí)時(shí)獲取logcat日志信息的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了實(shí)時(shí)獲取logcat日志的原理、步驟與相關(guān)實(shí)現(xiàn)技巧,并附帶相應(yīng)的demo源碼供讀者下載參考,需要的朋友可以參考下2016-02-02
android上的一個(gè)網(wǎng)絡(luò)接口和圖片緩存框架enif簡析
android上的一個(gè)網(wǎng)絡(luò)接口和圖片緩存框架enif詳細(xì)介紹:底層網(wǎng)絡(luò)接口采用apache的httpclient連接池框架、圖片緩存采用基于LRU的算法等等,需要了解的朋友可以詳細(xì)參考下2012-12-12
android 監(jiān)聽網(wǎng)絡(luò)狀態(tài)的變化及實(shí)戰(zhàn)的示例代碼
本篇文章主要介紹了android 監(jiān)聽網(wǎng)絡(luò)狀態(tài)的變化及實(shí)戰(zhàn)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01
解析Android點(diǎn)擊事件分發(fā)機(jī)制
本篇文章主要介紹了解析Android點(diǎn)擊事件分發(fā)機(jī)制,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
Java操作FreeMarker模板引擎的基本用法示例小結(jié)
這篇文章主要介紹了Java操作FreeMarker模板引擎的基本用法示例小結(jié),FreeMarker本身由Java寫成,用模板來生成文本輸出,需要的朋友可以參考下2016-02-02
LayoutAnimation給ListView中的item設(shè)置動(dòng)態(tài)出場(chǎng)效果(實(shí)例)
下面小編就為大家?guī)硪黄狶ayoutAnimation給ListView中的item設(shè)置動(dòng)態(tài)出場(chǎng)效果(實(shí)例)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10
android 設(shè)置圓角圖片實(shí)現(xiàn)代碼
在android應(yīng)用開發(fā)中,可能是美化需要,圖片需要處理成圓角,本文將給出實(shí)現(xiàn)代碼,開發(fā)中的遇到此問題的朋友可以參考下2012-11-11

