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());
}
}
});
本地搜索
- 獲取手機sd卡,遍歷sd卡,查找音樂文件,將歌曲名稱和歌曲的絕對路徑保存到一個ArrayList中
- 遍歷一個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è)計模式