4JPlayer.Ver1.1-需求分析与实现方法

一、需求来源

为完善上一版本(4JPlayer.Ver1.0)中存在的不足和增加一些新的功能,从而来进一步学习Android SDK的相关知识点。

二、功能概要和涉及知识点

  1. 欢迎界面显示图片和动态点状进度条,并停留一段时间之后跳转到主界面
    • Activity:调用finish()方法来结束当前Activity和startActivity()来开启一个新的Activity。
    • Handler:调用sendEmptyMessageDelayed()方法来延迟发送消息和重写handleMessage()方法来接收消息,并用switch-case进行分类处理。
    • Thread:定义一个线程类,该类extends Thread,通过传递Handler对象进行实例化,在run()方法中调用Handler对象的sendEmptyMessageDelayed()方法发送消息。
  2. 主界面由4个Tab组成
    • 组件:TabHost、TabWidget和FrameLayout组件。
    • 类:TabActivity、TabHost和TabHost.TabSpec类
  3. 其中2个Tab(Local Tab和Remote Tab)的内容由ListView来进行布局,并且ListItem中包含文字、图片和按钮(需监听onClick事件)
    • 组件:ListVew、TextView、ImageView和ImageButton组件。
    • 类:SimpleAdapter和通过extends BaseAdapter来自定义一个Adapter类,并监听ImageButton的onClick事件。
  4. 从服务器上获取mp3文件列表
    • 下载XML文件:涉及到URL、HttpURLConnection类
    • 解析XML文件:通过extends DefaultHandler来自定义一个Handler类,并重写startElement()、endElement()和characters()方法来进行标签解析;还涉及到SAXParserFactory和XMLReader类。
  5. 后台从服务器下载mp3文件,并写入到SDCard中去(给予下载开始提示信息)
    • 下载开始提示信息:通过Toast.makeText()实现。
    • 后台从服务器下载mp3文件:通过extends Service来自定义一个Service类,并重写onStartCommand()方法,在该方法中开启一个Thread来进行下载。当然,同样也涉及到URL、HttpURLConnection类。
    • 将mp3文件写入到SDCard中去:涉及到一些文件和IO流的操作。
  6. 罗列SDCard中mp3文件
    • 当前的实现方法:直接遍历sdcard\mp3目录下后缀为“.mp3”的文件。
    • 更完善的实现方法:通过getContentResolver().query()方法返回一个承载sdcard上所有音频文件记录的Cursor对象,音频文件信息存放在data\data\com.android.providers.media\databases\external-**.db中,对应的Uri为:MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;具体实现请参考>>http://blog.csdn.net/Android_Tutor/archive/2010/07/18/5743183.aspx(由于我编码完之后才知晓有这种更完备的方案,但改动太大,所以这个版本暂时就没做修改,下一版本可能会修改成这种方案。)
  7. 音乐播放控制:播放、暂停、上一首和下一首(可以循环播放)
    • Service:通过extends Service定义一个Serivce,用于后台进行歌曲播放控制。
    • MediaPlayer:reset()、prepare()、start()、pause()
  8. 播放音乐时有动态的SeekBar和动态的数字计时器
    • 组件:SeekBar
    • Thread:在用于播放音乐Service中,新建一个线程,该线程中通过Handler每隔1000ms发送一次消息。
    • Handler:在音乐播放控制Activity中,通过Handler的handleMessage()方法接收消息,并移动进度条和设置数字计时器。
  9. 当按后退键退出Activity之后,会在Status Bar显示播放信息
    • 涉及到Notification和PendingIntent类的相关方法。

三、尚欠缺的功能

  1. 拖动播放
  2. 多播放列表
  3. 歌词同步

四、源码

http://7xl53s.com1.z0.glb.clouddn.com/download/2015/08/src/4jplayer-1.1.zip

Author: 四勾 4J

via 4jplus.com

Leave a Reply

Your email address will not be published. Required fields are marked *