音乐播放功能按钮实现

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();

}

时间: 2024-08-25 21:11:50

音乐播放功能按钮实现的相关文章

Service Broadcast简单音乐播放功能

在Activity上有两个ImageButton,分别控制播放/暂停.停止. @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        start = (ImageButton) findViewById(R.id.play);        stop =

微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器

我的微信开发者工具 开篇语 好不容易,终于把所有的基础课程全部看完了!昨天,我很高兴地开始了看别人做的项目进行深度的学习.其实也说不上是项目吧,更多的像是一种给新手看的示例代码.然后我在这些代码上面进行我自己的改进.最后也就有了接下来我会给大家带来的这篇文章中的项目.这个项目是完整的,它包括了一个原本的示例代码中带着的莫名其妙的动画组件(可能是为了更多额展示微信小程序的控件体系)以及跑步的组件,还有我后来自己加上去的一个音乐播放组件.总共也就有了三个的功能:动画效果展示:跑步的定时以及定位功能:

swift 音乐播放器项目-《lxy的杰伦情歌》开发实战演练

最近准备将项目转化为OC与swift混合开发,试着写一个swift音乐播放器的demo,体会到了swift相对OC的优势所在,废话不多说,先上效果图: ps:身为杰伦的铁粉,demo的主题必须跟杰伦有关,哈哈!而且自我感觉我有转型UI的天赋,有木有? 一.导入OC文件 创建好swift项目之后,导入OC工具类文件,Xcode会自动生成桥接文件 打开这个文件,在开头导入OC工具类的头文件,就可以调用OC工具类了 // // Use this file to import your target's

Android 音乐播放

android简单音乐播放控制代码 这个几个月业余时间一直在做一个android项目,里面涉及到了音乐播放功能.很简单那种,播放.暂停.上一曲.下一曲.音量调节等. 音乐播放主要使用的对象是MediaPlayer,这个对象很强大 也提供了很多功能. mediaplayer 音乐播放主要控制类 1 package com.weizhi.common; 2 3 import java.util.ArrayList; 4 import android.media.MediaPlayer; 5 impo

iOS开发拓展篇—音频处理(音乐播放器5)

iOS开发拓展篇—音频处理(音乐播放器5) 实现效果: 一.半透明滑块的设置 1 /** 2 *拖动滑块 3 */ 4 - (IBAction)panSlider:(UIPanGestureRecognizer *)sender { 5 6 //1.获得挪动的距离 7 CGPoint t=[sender translationInView:sender.view]; 8 //把挪动清零 9 [sender setTranslation:CGPointZero inView:sender.view

iOS开发拓展篇—音频处理(音乐播放器6)

iOS开发拓展篇—音频处理(音乐播放器6) 一.图片处理 说明: Aspect表示按照原来的宽高比进行缩放. Aspectfit表示按照原来的宽高比缩放,要求看到全部图片,后果是不能完全覆盖窗口,会留有空白. Aspectfill表示按照原来的宽高比缩放,但只能看到部分图片.引发的问题:可能会有一部分超出屏幕. 所以,如果选择了Aspectfill模式,那么需要剪切超出的图片,在storyboard中也可以进行设置. 下面的两种设置是等效的. (1)在storyboard中进行设置 (2)使用代

iOS学习笔记23-音效与音乐

一.音频 在iOS中,音频播放从形式上能够分为音效播放和音乐播放. * 音效: * 主要指一些短音频的播放,这类音频一般不须要进行进度.循环等控制. * 在iOS中.音效我们是使用AudioToolbox.framework框架实现. * 音乐: * 主要指一些较长的音频,通常须要对播放进行精确控制. * 在iOS中,音乐我们是使用AVFoundation.framework框架实现. 二.音效 AudioToolbox.framework框架是一套基于C语言的框架 它的实现原理是将短音频注冊到

js 简单的音乐播放

我先百度搜搜了关于音乐播放器,然后看了下,看到有jquery的写的,也有js写的,看了大致思路,选了一个修改了一下.js是找了一个网上,添加了点东西.          (题外话)上班时间玩这个东西就怕被老板抓到,所以我还是特别小心的.由于不能花太多时间,刚好看到了QQ音乐的按钮的图标,也就顺带弄了下图片.暂时先能播放和换歌,凑合听吧,有空打算把歌词也弄下去.        这个是线上的地址  http://182.254.136.120:99/silas/mp3/demo.html     

乐乐音乐播放器 功能介绍(一)

该播放器主要完成的功能如下: 1.      引导页面.每个应用在启动的时候都会有一个引导页面,该引导页面的功能就是让用户可以在短时间内了解该应用的功能和相关操作. 2.      欢迎页面.应用在启动的时候都会有一个splash界面,该页面主要显示该应用的版本.名称和版权等相关信息. 3.      界面设计.一个播放器界面相对较多,主要分为:主界面.查找本地歌曲界面.歌曲列表界面.歌词界面.锁屏界面.皮肤.设置界面和播放界面等. 4.      皮肤设计.针对用户的不同喜好,提供多种皮肤.