android 播放音乐示例
这个例子是播放音乐的一个小例子也比较简单,大家需要去下载2个.mp3结尾的歌曲,然后放到SD卡里边 进行测试,就可以看到效果了。 运行效果如下
main.xml
musicitme.xml
只有一个类 Activity01package com.yarin.android.Examples_07_01;import java.io.File;import java.io.FilenameFilter;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.KeyEvent;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ImageButton;import android.widget.ListView;public class Activity01 extends ListActivity {/* 几个操作按钮 */private ImageButtonmFrontImageButton= null;private ImageButtonmStopImageButton= null;private ImageButtonmStartImageButton= null;private ImageButtonmPauseImageButton= null;private ImageButtonmNextImageButton= null;/* MediaPlayer对象 */public MediaPlayermMediaPlayer= null;/* 播放列表 */private List<String> mMusicList = new ArrayList<String>();/* 当前播放歌曲的索引 */private int currentListItme = 0;/* 音乐的路径 */private static final String MUSIC_PATH = new String("/sdcard/");/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);/* 更新显示播放列表 */musicList();/* 构建MediaPlayer对象 */mMediaPlayer= new MediaPlayer();mFrontImageButton = (ImageButton) findViewById(R.id.LastImageButton); mStopImageButton = (ImageButton) findViewById(R.id.StopImageButton);mStartImageButton = (ImageButton) findViewById(R.id.StartImageButton); mPauseImageButton = (ImageButton) findViewById(R.id.PauseImageButton);mNextImageButton = (ImageButton) findViewById(R.id.NextImageButton); //停止按钮mStopImageButton.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v){/* 是否正在播放 */if (mMediaPlayer.isPlaying()){//重置MediaPlayer到初始状态mMediaPlayer.reset();}}}); //开始按钮mStartImageButton.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v){playMusic(MUSIC_PATH + mMusicList.get(currentListItme));}}); //暂停mPauseImageButton.setOnClickListener(new ImageButton.OnClickListener() {public void onClick(View view){if (mMediaPlayer.isPlaying()){/* 暂停 */mMediaPlayer.pause();}else {/* 开始播放 */mMediaPlayer.start();}}});//下一首mNextImageButton.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View arg0){nextMusic();}});//上一首mFrontImageButton.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View arg0){FrontMusic();}});}/*<----------------------------->*/public boolean onKeyDown(int keyCode, KeyEvent event){if ( keyCode == KeyEvent.KEYCODE_BAprivate void nextMusic(){if (++currentListItme >= mMusicList.size()){currentListItme = 0;}else{playMusic(MUSIC_PATH + mMusicList.get(currentListItme));}}/* 上一首 */private void FrontMusic(){if (--currentListItme >= 0){currentListItme = mMusicList.size();}else{playMusic(MUSIC_PATH + mMusicList.get(currentListItme));}}}/* 过滤文件类型 */class MusicFilter implements FilenameFilter{public boolean accept(File dir, String name){//这里还可以设置其他格式的音乐文件return (name.endsWith(".mp3"));}}
源码见附件,大家需要下载2首.mp3 结尾的歌曲进行测试