李倩 -- 论文讲解

1 具体实现功能简介-网络/本地音乐

获取网络音乐

  • 通过网络获取音乐的封面,音乐名称,网络音乐的URL

读取本地音乐

  • 客户端启动,遍历cd卡,将cd卡中的音乐文件保存到一个ArrayList之中,保存音乐的路径.和音乐名称

通过listView进行显示音乐列表.给listView的item添加点击事件,点击item之后,Intent(是Activity和Activity连接的桥梁)获取item的数据,启动播放的Activity.播放的Acitvity进行播放此歌曲.

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

搜索

网络搜索

 //查找Person表里面id为6b6c11c537的数据  
BmobQuery bmobQuery = new BmobQuery();  
bmobQuery.getObject("6b6c11c537", new >QueryListener() {  
@Override  
public void done(Person object,BmobException e) {  
    if(e==null){  
        toast("查询成功");  
    }else{  
        toast("查询失败:" + e.getMessage());  
    }  
}  
});  

本地搜索

  1. 获取手机sd卡,遍历sd卡,查找音乐文件,将歌曲名称和歌曲的绝对路径保存到一个ArrayList中
  2. 遍历一个ArrayList,将输入的歌名和ArrayList中的歌曲名称进行比较,发现ArrayList中的歌曲名称包含输入的歌名,则显示出来。
    3.将结果显示到ListView中。

弹框如何实现

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());//创建弹框的Builder
builder.setTitle("请选择:");//标题
final AlertDialog  dialog;//创建弹框对象
View view2 = LayoutInflater.from(getActivity()).inflate(R.layout.item_lv, null);//创建显示界面
builder.setView(view2);//将显示界面设置如弹框中
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();  //创建音乐播放对象
mediaPlayer.seekTo(int(跳转到那个时间));     //跳转到什么时间点,在进行播放
mediaPlayer.reset(); //初始化对象  
mediaPlayer.setDataSource(url);//设置歌曲的路径,可以是本地音乐(绝对路径),也可以是url(网络歌曲)。
mediaPlayer.prepareAsync();//加载资源  
mediaPlayer.setOnPreparedListener(new OnPreparedListener() { //监听资源是否加载完毕,如果加载完毕就进行播放
    @Override
    public void onPrepared(MediaPlayer mp) {
        mp.start();//播放音乐
    }
});

如果实现界面跳转

Intent intent = new Intent(getActivity(), MusicActivity.class(要跳转的Activity));
intent.putExtra("key","携带的数据");
startActivity(intent);

下载

  • 1.创建一个URL对象 URL
  • 2.创建一个HTTP链接 HttpURLConnection
  • 3.使用IO流获取数据 InputStream

歌词

读取歌词文件,放入ArrayList中,将歌词放到TextView,每秒刷新一次

listview如何实现点击事件

通过观察者设计模式,将点击事件传到监听事件中

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) {
 }
});

技术

mvc设计模式

你可能感兴趣的:(李倩 -- 论文讲解)