码迷,mamicode.com
首页 > 其他好文 > 详细

音乐播放功能按钮实现

时间:2015-03-12 01:06:00      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:随笔

import java.io.File;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.ListView;


public class MainActivity extends Activity {


private MediaPlayer mp;

private List<String> list = new ArrayList<String>();

private int location = 0;//当前播放歌曲的索引

private Button play;

private Button up;

private Button next;

private Button replay;

private boolean flag = false;

private Button stop;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

play = (Button) findViewById(R.id.bt_play);

up = (Button) findViewById(R.id.bt_up);

next = (Button) findViewById(R.id.bt_next);

replay = (Button) findViewById(R.id.bt_replay);

stop = (Button) findViewById(R.id.bt_stop);

replay.setEnabled(false);

mp = new MediaPlayer();

showlist();

play.setOnClickListener(new OnClickListener() {


@Override

public void onClick(View v) {

if (flag == false) {

playMusic(list.get(location));

play.setText("||");

flag = true;

replay.setEnabled(true);

} else {

yesOrNo();

}

}

});

up.setOnClickListener(new OnClickListener() {


@Override

public void onClick(View v) {

upMusic();


}

});

next.setOnClickListener(new OnClickListener() {


@Override

public void onClick(View v) {

nextMusic();


}

});

replay.setOnClickListener(new OnClickListener() {


@Override

public void onClick(View v) {


mp.seekTo(0);

mp.start();

play.setText("||");

}

});

stop.setOnClickListener(new OnClickListener() {


@Override

public void onClick(View v) {


mp.stop();

flag = false;

play.setText("◎");

replay.setEnabled(false);

}

});

}


/*

* 显示音乐文件在ListView中

*/

private void showlist() {

getFile("/mnt/sdcard/qqmusic/import/");// 获取SD卡上的全部音乐文件

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_list_item_1, list);// 创建一个适配

ListView lv_list = (ListView) findViewById(R.id.lv_list);

lv_list.setAdapter(adapter);

lv_list.setOnItemClickListener(new OnItemClickListener() {


@Override

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,

long arg3) {

location = arg2;

playMusic(list.get(location));


}

});

}


/*

* 获取音乐文件

*/

public void getFile(String url) {

File files = new File(url);

File[] file = files.listFiles();

for (File f : file) {

if (f.isDirectory()) { // 如果是文件夹--(此处存在问题,地址写全代码不过此处可以正常运行,否则null,需改进

getFile(f.getAbsolutePath()); // 递归调用--(此处存在问题,地址写全代码不过此处可以正常运行,否则null,需改进

} else {

if (isAudioFile(f.getPath())) { // 如果是规定文件格式

list.add(f.getPath()); // 将文件添加到集合中

}

}

}

}


/*

* 判断文件格式

*/

private boolean isAudioFile(String path) {

if (path.contains("mp3")) {

return true;

}

return false;

}


/*

* 播放

*/

public void playMusic(String path) {


if (mp.isPlaying()) {

mp.stop();

}

mp.reset();// 重置MediaPlayer

try {

mp.setDataSource(path);

mp.prepare();

mp.start();

play.setText("||");

flag = true;

replay.setEnabled(true);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}


/*

* 暂停、继续

*/


public void yesOrNo() {


if (mp != null && mp.isPlaying()) {

mp.pause();

play.setText("◎");

} else {

mp.start();

play.setText("||");

}

}


/*

* 下一首

*/

public void nextMusic() {

if (++location > list.size()) {

location = 0;

}

play.setText("||");

flag = true;

replay.setEnabled(true);

playMusic(list.get(location));

}


/*

* 上一首

*/

public void upMusic() {

if (--location < 0) {

location = list.size() - 1;

}

play.setText("||");

flag = true;

replay.setEnabled(true);

playMusic(list.get(location));

}


@Override

protected void onDestroy() {


if (mp.isPlaying()) {

mp.stop();

}

mp.release();

super.onDestroy();

}


本文出自 “Android小笔记” 博客,请务必保留此出处http://dreamwing.blog.51cto.com/9872128/1619519

音乐播放功能按钮实现

标签:随笔

原文地址:http://dreamwing.blog.51cto.com/9872128/1619519

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!