1600802053

1.音乐播放器界面截图:

(1)主界面:                                                                                                        (2)点击左图中左上角的绿色小图标显示歌的相关信息界面:                          

          

(3)自己手机上apk成功安装截图:(运行apk过程截图即主界面截图)

注:

apk运行一切正常,功能都可以实现,只是有以下两个缺点:

1.运行apk时,打开速度有点慢,会白屏半分钟左右,但最终会成功打开;

2.打开apk后,偶尔会有闪退现象,重新打开就好了。 

2.功能介绍:

(1)三个按钮:

 点击左按钮:播放上一首;

 点击中间按钮:暂停或播放;

 点击右按钮:播放下一首;

(2)歌单

歌单显示在主界面,通过滚动条可以上下翻动查看歌单;

点击歌单中的某一首歌,即可播放对应歌曲;

(3)播放方式

点击右上角的循环方式,可以切换循环方式,有歌单循环、单曲循环、随机播放和顺序播放四种播放方式;

(4)播放过程

播放某一歌曲时,会显示正在播放歌曲的名字和对应歌手;

播放时滚动条会随之移动;

播放时会显示总时间和播放时间;

(5)歌曲信息

点击主界面左上角的绿色小图标,会跳转到另一个界面,即显示歌曲信息的界面;

(6)后台播放

所有歌曲,在退出apk后,可以在后台进行播放。

3.关键代码:

 

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    setContentView(R.layout.activity_main);

    Log.e(TAG, "onCreate.");
    connectToMusicService();

  
    initUIComponent();         //初始化UI         
    initUIComponentListener(); //设置监听器
    scanMp3Files();            //扫描歌曲
    registerLocalReceiver();   //注册广播

    adapterTextview = new AdapterTextview(this, files);
    listView.setAdapter(adapterTextview);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
   
            currentIndex = position;
            musicBinder.startPlay(currentIndex, 0);     //开始播放选中歌曲
            if (musicBinder.isPlaying()) {
                playPause.setImageResource(R.drawable.pause);
            }

        }
    });
}
扫描歌曲:private void scanMp3Files() {

    fileList = new ArrayList<String>();
    fileListPath = new ArrayList<String>();

    final File[] file = new File(MUSIC_PATH).listFiles();

    readFile(file);
    files = fileList.toArray(new String[1]);
    filesPath = fileListPath.toArray(new String[1]);
}
读取歌曲:
private void readFile(final File[] file) {
    for (int i = 0;(file != null) && (i < file.length);i++) {
        if (file[i].isFile() && (file[i].getName().endsWith("mp3"))) {

            fileList.add(file[i].getName());
            fileListPath.add(file[i].getPath());
        }else if (file[i].isDirectory()) {
            final File[] tempFileList = new File(file[i].getAbsolutePath()).listFiles();
            readFile(tempFileList);
        }

    }
}
 
intent方法连接到音乐服务器:
private void connectToMusicService(){ Intent intent = new Intent(MainActivity.this, MusicService.class); startService(intent); bindService(intent, serviceConnection, BIND_AUTO_CREATE); }
播放音乐:
private
void play(int position,int resId) { if (musicBinder.isPlaying()) { musicBinder.stopPlay(); playPause.setImageResource(R.drawable.play); }else { musicBinder.startPlay(position,currentPosition); playPause.setImageResource(R.drawable.pause); } }

4.代码链接:https://git.coding.net/huanmeng80/myj_1600802053.git

5.apk及apk运行录屏 链接:https://git.coding.net/huanmeng80/apk.git

(apk可以成功运行,为了方便老师批阅,直观看本项目apk,特此录屏)

 

posted on 2018-12-09 21:25  幻梦huanmeng  阅读(185)  评论(0编辑  收藏  举报

导航