李倩 -- 論文講解

1 具體實現(xiàn)功能簡介-網(wǎng)絡(luò)/本地音樂

獲取網(wǎng)絡(luò)音樂

  • 通過網(wǎng)絡(luò)獲取音樂的封面,音樂名稱,網(wǎng)絡(luò)音樂的URL

讀取本地音樂

  • 客戶端啟動,遍歷cd卡,將cd卡中的音樂文件保存到一個ArrayList之中,保存音樂的路徑.和音樂名稱

通過listView進行顯示音樂列表.給listView的item添加點擊事件,點擊item之后,Intent(是Activity和Activity連接的橋梁)獲取item的數(shù)據(jù),啟動播放的Activity.播放的Acitvity進行播放此歌曲.

bmob云查找音樂代碼
http://doc.bmob.cn/data/android/index.html#_5

搜索

網(wǎng)絡(luò)搜索

 //查找Person表里面id為6b6c11c537的數(shù)據(jù)  
BmobQuery<Person> bmobQuery = new BmobQuery<Person>();  
bmobQuery.getObject("6b6c11c537", new >QueryListener<Person>() {  
@Override  
public void done(Person object,BmobException e) {  
    if(e==null){  
        toast("查詢成功");  
    }else{  
        toast("查詢失?。? + e.getMessage());  
    }  
}  
});  

本地搜索

  1. 獲取手機sd卡,遍歷sd卡,查找音樂文件,將歌曲名稱和歌曲的絕對路徑保存到一個ArrayList中
  2. 遍歷一個ArrayList,將輸入的歌名和ArrayList中的歌曲名稱進行比較,發(fā)現(xiàn)ArrayList中的歌曲名稱包含輸入的歌名,則顯示出來。
    3.將結(jié)果顯示到ListView中。

彈框如何實現(xiàn)

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());//創(chuàng)建彈框的Builder
builder.setTitle("請選擇:");//標題
final AlertDialog  dialog;//創(chuàng)建彈框?qū)ο?View view2 = LayoutInflater.from(getActivity()).inflate(R.layout.item_lv, null);//創(chuàng)建顯示界面
builder.setView(view2);//將顯示界面設(shè)置如彈框中
dialog = builder.create();//實例化彈框
TextView shouchang = (TextView) view2.findViewById(R.id.item_lv_shouchang);
shouchang.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        toastS("收藏成功");
        videolove.add(videoAll.get(position));
        videoloveID.add(videoAll.get(position));
        dialog.dismiss();//將彈框取消
    }
});
dialog.show( );

收藏

videolove --> ArrayList 保存我們收藏的音樂
保存的是音樂的絕對路徑
videolove.add(videoAll.get(position));
videoloveID.add(videoAll.get(position));

音樂播放

mediaPlayer = MyMediaPlayer.getMediaPlayer();  //創(chuàng)建音樂播放對象
mediaPlayer.seekTo(int(跳轉(zhuǎn)到那個時間));     //跳轉(zhuǎn)到什么時間點,在進行播放
mediaPlayer.reset(); //初始化對象  
mediaPlayer.setDataSource(url);//設(shè)置歌曲的路徑,可以是本地音樂(絕對路徑),也可以是url(網(wǎng)絡(luò)歌曲)。
mediaPlayer.prepareAsync();//加載資源  
mediaPlayer.setOnPreparedListener(new OnPreparedListener() { //監(jiān)聽資源是否加載完畢,如果加載完畢就進行播放
    @Override
    public void onPrepared(MediaPlayer mp) {
        mp.start();//播放音樂
    }
});

如果實現(xiàn)界面跳轉(zhuǎn)

Intent intent = new Intent(getActivity(), MusicActivity.class(要跳轉(zhuǎn)的Activity));
intent.putExtra("key","攜帶的數(shù)據(jù)");
startActivity(intent);

下載

  • 1.創(chuàng)建一個URL對象 URL
  • 2.創(chuàng)建一個HTTP鏈接 HttpURLConnection
  • 3.使用IO流獲取數(shù)據(jù) InputStream

歌詞

讀取歌詞文件,放入ArrayList中,將歌詞放到TextView,每秒刷新一次

listview如何實現(xiàn)點擊事件

通過觀察者設(shè)計模式,將點擊事件傳到監(jiān)聽事件中

LV.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
    }
 });
LV.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view,final int position, long id) {
 }
});

技術(shù)

mvc設(shè)計模式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,160評論 25 708
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,358評論 0 17
  • 本人初學(xué)Android,最近做了一個實現(xiàn)安卓簡單音樂播放功能的播放器,收獲不少,于是便記錄下來自己的思路與知識總結(jié)...
    落日柳風(fēng)閱讀 19,460評論 2 41
  • #日知分享# No.63 1.人都是情緒化生物,了解這一點,很多事情就可以得到解釋了。比如,當你知道你辛辛苦苦做出...
    易小六閱讀 229評論 0 0
  • 一條條的祝福信息像一聲聲催促,不斷地提醒著我,今天已然28歲了。 在28歲到來的這一天,我愿意把所有感悟到的東西寫...
    我是莫小葉閱讀 16,473評論 232 860

友情鏈接更多精彩內(nèi)容