android:music
package com.terry; import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import android.app.ListActivity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast; public class myActivity2 extends ListActivity implements OnClickListener {
Button play;
Button pause;
Button next;
Button last;
// ListView listViews;
List<String> list;
MediaPlayer mediaplayer;
String PATH_ROOT = "/sdcard/";
//当前项目名称
String CURRENT_ITME = "";
//当前位置
int CURRENT_POSITON = 0; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// Intent intent = new Intent();
setContentView(R.layout.main2); initViews();
initListViews();
mediaplayer = new MediaPlayer();
} private void initViews() {
// TODO Auto-generated method stub
play = (Button) findViewById(R.id.start2);
pause = (Button) findViewById(R.id.pause2);
next = (Button) findViewById(R.id.next2);
last = (Button) findViewById(R.id.last2);
play.setOnClickListener(this);
pause.setOnClickListener(this);
next.setOnClickListener(this);
last.setOnClickListener(this);
} private void initListViews() {
// 初始化ListViews
// listViews
list = new ArrayList<String>();
ArrayAdapter<String> musiclistadapter;
File file = new File(PATH_ROOT);
if (file != null) {
if (file.isDirectory()) {
File[] listfiles = file.listFiles();
if (listfiles != null) {
for (int i = 0; i < listfiles.length; i++) {
String name = listfiles[i].getName();
if (name.endsWith(".mp3")) {
list.add(name);
}
}
}
}
}
musiclistadapter = new ArrayAdapter<String>(this, R.layout.musicitme,
list);
setListAdapter(musiclistadapter);
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.start2:
// mediaplayer.p
playMusic(PATH_ROOT + CURRENT_ITME); break; case R.id.pause2:
if (mediaplayer.isPlaying()) {
mediaplayer.pause();
} else {
Toast.makeText(this, "没有正在播放的音乐,我自动播放咯。。。。", 100).show();
playMusic(PATH_ROOT + CURRENT_ITME);
}
break;
case R.id.next2:
System.out.println("xiayishou....");
CURRENT_POSITON += 1;
CURRENT_ITME = list.get(CURRENT_POSITON);
playMusic(PATH_ROOT + CURRENT_ITME);
System.out.println("path:" + PATH_ROOT + CURRENT_ITME);
Toast.makeText(this, "下一首音乐,path:" + PATH_ROOT + CURRENT_ITME, 100)
.show();
break;
case R.id.last2:
System.out.println("shangyishou....");
CURRENT_POSITON -= 1;
CURRENT_ITME = list.get(CURRENT_POSITON);
playMusic(PATH_ROOT + CURRENT_ITME);
System.out.println("path:" + PATH_ROOT + CURRENT_ITME);
Toast.makeText(this, "shang一首音乐,path:" + PATH_ROOT + CURRENT_ITME, 100)
.show();
break;
}
} private void playMusic(String path) {
mediaplayer.reset();
try {
mediaplayer.setDataSource(path);
mediaplayer.prepare();
mediaplayer.start();
mediaplayer
.setOnCompletionListener(new myOnCompleteMusicListener());
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } public class myOnCompleteMusicListener implements OnCompletionListener { @Override
public void onCompletion(MediaPlayer mp) {
// TODO
// playMusic(P);
} } @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
CURRENT_POSITON = position;
CURRENT_ITME = list.get(position);//获取当前位置的String字符串,即文件名
playMusic(PATH_ROOT + CURRENT_ITME);
Toast.makeText(this, "PATH:" + PATH_ROOT + CURRENT_ITME, 100).show();
System.out.println("path:" + PATH_ROOT + CURRENT_ITME);
} }

android:music的更多相关文章
- 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新
本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...
- 配置android sdk 环境
1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/
- Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记
以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...
- Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...
- Android请求网络共通类——Hi_博客 Android App 开发笔记
今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...
- Android Studio 多个编译环境配置 多渠道打包 APK输出配置
看完这篇你学到什么: 熟悉gradle的构建配置 熟悉代码构建环境的目录结构,你知道的不仅仅是只有src/main 开发.生成环境等等环境可以任意切换打包 多渠道打包 APK输出文件配置 需求 一般我 ...
- JS调用Android、Ios原生控件
在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...
- Android UI体验之全屏沉浸式透明状态栏效果
前言: Android 4.4之后谷歌提供了沉浸式全屏体验, 在沉浸式全屏模式下, 状态栏. 虚拟按键动态隐藏, 应用可以使用完整的屏幕空间, 按照 Google 的说法, 给用户一种 身临其境 的体 ...
随机推荐
- cocos2d-x 截取屏幕可见区域
在游戏中,我们经常需要分享到社交网络的功能.分享时,我们时常会需要用到截屏的功能.目前网上的文章虽然很多,但是都是截取的 设计分辨率(DesignResolutionSize)大小的屏幕,而这个并不是 ...
- Linux 网络编程: daytime Service
前言 如果你这段时间过得很舒服,那就证明你荒废以一段时间.如果你这段时间过得很辛苦,那么恭喜,你又进步了.最近入党的事情忙得焦头烂额,博客也拖了好久没写,主要也是因为要装 xinetd 服务一直没装好 ...
- jenkins上集成fitnesse
烂笔头胜过好记性,恩,养成随手记的习惯 Fitnesse是完全有Java开发的测试框架,跨平台并且便于与其他测试框架和工具的合并(Jenkins.TestNG,Junit以及Selenium的集成) ...
- 去确认CP210x UART Bridge的USB的VID和PID
[背景] 之前买的USB口的HART猫: [记录]为USB接口的HART猫ExSaf ESH232U安装对应的USB转RS232驱动 其中内部是USB转RS232. 然后打算去看看之前的自己此处的某个 ...
- linux 的 ping 原理
ping命令的工作原理是: ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具. 他向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文原样传回给发送者,这 ...
- HDU 1348 Wall
题解:计算凸包周长 #include <iostream> #include <cmath> #include <algorithm> const int size ...
- 《JavaScript权威指南》拾遗(上)
一.语言基础 1.javascript中,只有null和undefined是无法拥有方法的值,它们都没有包装对象.typeof null == ‘object' , typeof un ...
- jbpmAPI-1
1.1. What is jBPM? jBPM是一个灵活的业务流程管理(BPM)套件.它是轻量级的,完全开源Apache许可下(分布式),用Java编写的.它允许您模型.执行和监控业务流程的整个生命周 ...
- linkbutton.js
jquery.linkbutton.js /** * linkbutton - jQuery EasyUI * * Licensed under the GPL: * http://www.gnu.o ...
- php的迭代器
接口Iterator 主要需要实现的方法: abstract public mixed current ( void ) abstract public scalar key ( void ) abs ...