<1>.本示例演示使用MediaPlayer播放sdcard中的音乐,首先在/sdcard/目录下加入音乐文件(mp3),

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:id="@+id/mTextView" android:layout_width="fill_parent"android:layout_height="wrap_content" android:text=""></TextView><LinearLayout android:id="@+id/ll_list"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="wrap_content"><ListView android:id="@+id/lv_music" android:layout_width="fill_parent"android:layout_height="wrap_content"></ListView></LinearLayout><LinearLayout android:id="@+id/ll_btn"android:orientation="horizontal" android:layout_width="fill_parent"android:layout_height="wrap_content"><ImageButton android:id="@+id/imgbtn_last" android:src="@drawable/last"android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageButton><ImageButton android:id="@+id/imgbtn_start" android:src="@drawable/start"android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageButton><ImageButton android:id="@+id/imgbtn_pause" android:src="@drawable/pause"android:visibility="gone" android:layout_width="wrap_content"android:layout_height="wrap_content"></ImageButton><ImageButton android:id="@+id/imgbtn_stop" android:src="@drawable/stop"android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageButton><ImageButton android:id="@+id/imgbtn_next" android:src="@drawable/next"android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageButton></LinearLayout><LinearLayout android:id="@+id/ll_btn"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="wrap_content"><SeekBar android:id="@+id/SeekBar01" android:layout_width="fill_parent"android:layout_height="wrap_content"></SeekBar></LinearLayout></LinearLayout>


package com.Aina.Android;import java.io.File;import java.io.FilenameFilter;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.media.MediaPlayer.OnCompletionListener;import android.media.MediaPlayer.OnErrorListener;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ImageButton;import android.widget.ListView;import android.widget.SeekBar;import android.widget.TextView;public class Test extends Activity implements Runnable {/** Called when the activity is first created. */private MediaPlayer mMediaPlayer = null;private SeekBar mSeekBar = null;private ListView mListView = null;private ImageButton mLastbtn = null;private ImageButton mStartbtn = null;private ImageButton mPausebtn = null;private ImageButton mStopbtn = null;private ImageButton mNextbtn = null;private TextView mTextView = null;private List<String> mMusiclist = null;private int mCurrent = 0;private int count = 0;private boolean isrun = false;private boolean isauto = false;private static final String PATH = "/sdcard/";@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);mListView = (ListView) this.findViewById(R.id.lv_music);mSeekBar = (SeekBar) this.findViewById(R.id.SeekBar01);mTextView = (TextView) this.findViewById(R.id.mTextView);mLastbtn = (ImageButton) this.findViewById(R.id.imgbtn_last);mStartbtn = (ImageButton) this.findViewById(R.id.imgbtn_start);mPausebtn = (ImageButton) this.findViewById(R.id.imgbtn_pause);mStopbtn = (ImageButton) this.findViewById(R.id.imgbtn_stop);mNextbtn = (ImageButton) this.findViewById(R.id.imgbtn_next);mMusiclist = new ArrayList<String>();mMediaPlayer = new MediaPlayer();// 开始按钮mStartbtn.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v) {PlayMusic(PATH + mMusiclist.get(mCurrent));}});// 下一首mNextbtn.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubNextMusic();}});// 上一首mLastbtn.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubLastMusic();}});// 暂停mPausebtn.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubisrun = true;isauto = false;mPausebtn.setVisibility(View.GONE);// 隐藏暂停按钮mStartbtn.setVisibility(View.VISIBLE);// 显示启动按钮// 是否正在播放if (mMediaPlayer.isPlaying()) {mMediaPlayer.pause();}}});// 停止mStopbtn.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubStopMusic();}});mListView.setOnItemClickListener(new ListView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {mCurrent = arg2;StopMusic();PlayMusic(PATH + mMusiclist.get(mCurrent));}});mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar,int progress, boolean fromUser) {if (!isauto) {//int n = mMediaPlayer.getCurrentPosition();//mMediaPlayer.pause();mMediaPlayer.seekTo(progress);//mMediaPlayer.start();//isauto = true;}}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {isauto = false;}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {isauto = true;}});this.MusicList();new Thread(this).start();}public void PlayMusic(String path) {try {mStartbtn.setVisibility(View.GONE);// 隐藏启动按钮mPausebtn.setVisibility(View.VISIBLE);// 显示暂停按钮if (!isrun) {mMediaPlayer.reset();// 重置mMediaPlayer.setDataSource(path);// 设置数据源mMediaPlayer.prepare();// 准备mMediaPlayer.start();// 开始播放count = mMediaPlayer.getDuration();Log.i("TAG-count", count + "");mSeekBar.setMax(count);// 设置最大值.this.mTextView.setText("当前播放歌曲:" + mMusiclist.get(mCurrent));mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer mp) {// TODO Auto-generated method stubNextMusic();}});mMediaPlayer.setOnErrorListener(new OnErrorListener() {@Overridepublic boolean onError(MediaPlayer mp, int what, int extra) {ShowDialog("Error");mMediaPlayer.reset();return true;}});} else {mMediaPlayer.start();// 暂停之后接着播放}isauto = true;} catch (Exception ex) {this.ShowDialog("播放音乐异常:" + ex.getMessage());}}public void NextMusic() {int num = mMusiclist.size();if (++mCurrent >= num) {mCurrent = 0;}StopMusic();PlayMusic(PATH + mMusiclist.get(mCurrent));}public void LastMusic() {int num = mMusiclist.size();if (--mCurrent < 0) {mCurrent = num - 1;}StopMusic();PlayMusic(PATH + mMusiclist.get(mCurrent));}@Overrideprotected void onPause() {super.onPause();isauto = false;if (mMediaPlayer.isPlaying()) {mMediaPlayer.stop();// 停止}mMediaPlayer.reset();mMediaPlayer.release();//mMediaPlayer = null;}public void StopMusic() {isrun = false;//isauto = false;mPausebtn.setVisibility(View.GONE);// 隐藏暂停按钮mStartbtn.setVisibility(View.VISIBLE);// 显示启动按钮if (mMediaPlayer.isPlaying()) {mMediaPlayer.stop();// 停止}//mSeekBar.setProgress(0);}/** * 文件过滤器 *  * @author Aina *  */class MusicFilter implements FilenameFilter {@Overridepublic boolean accept(File dir, String filename) {return (filename.endsWith(".mp3"));}}/** * 播放列表 */public void MusicList() {try {File home = new File(PATH);File[] f = home.listFiles(new MusicFilter());if (f.length > 0) {for (int i = 0; i < f.length; i++) {File file = f[i];mMusiclist.add(file.getName().toString());}ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mMusiclist);mListView.setAdapter(adapter);}} catch (Exception ex) {this.ShowDialog("显示音乐列表异常:" + ex.getMessage());}}public void ShowDialog(String str) {new AlertDialog.Builder(this).setTitle("提示").setMessage(str).setPositiveButton("OK", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}}).show();}@Overridepublic void run() {// TODO Auto-generated method stubwhile (true) {try {if (isauto) {int n = mMediaPlayer.getCurrentPosition();Message msg = new Message();msg.what = n;handler.sendMessage(msg);}Thread.sleep(100);} catch (Exception ex) {ex.printStackTrace();}}}public Handler handler = new Handler() {public void handleMessage(Message msg) {super.handleMessage(msg);mSeekBar.setProgress(msg.what);mSeekBar.invalidate();}};}


<2>.此示例演示使用MediaPlayer播放当前应用中res/raw/目录下的音乐文件:

package com.Aina.Android;import android.app.Activity;import android.media.AudioManager;import android.media.MediaPlayer;import android.net.Uri;import android.os.Bundle;public class Test extends Activity {/** Called when the activity is first created. */private MediaPlayer mMediaPlayer = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// mMediaPlayer = MediaPlayer.create(this, R.raw.d);//播放res/raw文件夹中的音乐文件mMediaPlayer = MediaPlayer.create(this,Uri.parse("http://cd04.static.jango.com/music/07/05/63/0705635592.mp3"));//播放网络上的音乐mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mMediaPlayer.setLooping(true);// 循环播放mMediaPlayer.start();}@Overrideprotected void onPause() {if (mMediaPlayer.isPlaying()) {mMediaPlayer.stop();}mMediaPlayer.reset();mMediaPlayer.release();mMediaPlayer = null;super.onPause();}}

更多相关文章

  1. Android播放照相机声音
  2. 【Android】如何用MediaPlayer实现一个简单的音视频播放器
  3. android音频、视频、拍照基础操作
  4. Android(安卓)ListView 之 SimpleAdapter 二 (包含 item 中按钮
  5. android 日期对话框
  6. android 拖拽图片&拖动浮动按钮到处跑
  7. Android(安卓)常用的ui(单选框 多选框 下拉列表框 拖动条)
  8. Android又一个超漂亮的日历控件
  9. Android(安卓)TextToSpeech语音播放文本

随机推荐

  1. Android菜鸟日记14-对话框
  2. android 画线
  3. 如何隐藏Android4.0及以上版本的ActionBa
  4. Android(安卓)Studio Exception: Could n
  5. sdcard in emulator
  6. Android应用程序键盘(Keyboard)消息处理机
  7. Android监听来电和去电
  8. ImageLoader: java.io.FileNotFoundExcep
  9. android shape阴影效果
  10. Android启动流程