android 播放音乐示例

转载自 http://byandby.iteye.com/blog/845089

这个例子是播放音乐的一个小例子也比较简单,大家需要去下载2个.mp3结尾的歌曲,然后放到SD卡里边 进行测试,就可以看到效果了。 运行效果如下


main.xml

<?xml version="1.0" encoding="utf-8"?>  <AbsoluteLayout     xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >    <ListView     android:id="@id/android:list"    android:layout_width="fill_parent"     android:layout_height="fill_parent"    android:layout_weight="1"    android:drawSelectorOnTop="false"/>    <ImageButton    android:id="@+id/LastImageButton"    android:layout_width="wrap_content"    android:layout_height="wrap_content"      android:layout_x="10px"    android:layout_y="70px"    android:src="@drawable/last"      />    <ImageButton    android:id="@+id/StopImageButton"     android:layout_height="wrap_content"      android:layout_width="wrap_content"    android:layout_x="70px"    android:layout_y="70px"    android:src="@drawable/stop"     />      <ImageButton    android:id="@+id/StartImageButton"     android:layout_height="wrap_content"      android:layout_width="wrap_content"     android:layout_x="130px"    android:layout_y="70px"    android:src="@drawable/start"     />    <ImageButton    android:id="@+id/PauseImageButton"     android:layout_height="wrap_content"      android:layout_width="wrap_content"     android:layout_x="190px"    android:layout_y="70px"     android:src="@drawable/pause"     />      <ImageButton    android:id="@+id/NextImageButton"    android:layout_width="wrap_content"    android:layout_height="wrap_content"     android:layout_x="250px"    android:layout_y="70px"    android:src="@drawable/next"      />  </AbsoluteLayout>

musicitme.xml

<?xml version="1.0" encoding="utf-8"?>  <TextView xmlns:android="http://schemas.android.com/apk/res/android"      android:id="@+id/TextView01"      android:layout_width="fill_parent"       android:layout_height="wrap_content"       android:text="@string/hello"/> 

只有一个类 Activity01

package 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 ImageButton mFrontImageButton   = null;      private ImageButton mStopImageButton    = null;      private ImageButton mStartImageButton   = null;      private ImageButton mPauseImageButton   = null;      private ImageButton mNextImageButton    = null;        /* MediaPlayer对象 */      public MediaPlayer  mMediaPlayer        = 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. */      @Override      public 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()           {              @Override              public void onClick(View v)              {                  /* 是否正在播放 */                  if (mMediaPlayer.isPlaying())                  {                      //重置MediaPlayer到初始状态                      mMediaPlayer.reset();                  }              }          });                     //开始按钮          mStartImageButton.setOnClickListener(new ImageButton.OnClickListener()           {              @Override              public 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()           {              @Override              public void onClick(View arg0)              {                  nextMusic();              }          });          //上一首          mFrontImageButton.setOnClickListener(new ImageButton.OnClickListener()           {              @Override              public void onClick(View arg0)              {                  FrontMusic();              }          });      }            /*<----------------------------------------------------------------->*/            public boolean onKeyDown(int keyCode, KeyEvent event)      {          if ( keyCode ==  KeyEvent.KEYCODE_BACK)          {              mMediaPlayer.stop();              mMediaPlayer.release();              this.finish();              return true;          }          return super.onKeyDown(keyCode, event);      }                  @Override      /* 当我们点击列表时,播放被点击的音乐 */      protected void onListItemClick(ListView l, View v, int position, long id)      {          currentListItme = position;          playMusic(MUSIC_PATH + mMusicList.get(position));      }          /* 播放列表 */      public void musicList()      {          //取得指定位置的文件设置显示到播放列表          File home = new File(MUSIC_PATH);          if (home.listFiles(new MusicFilter()).length > 0)          {              for (File file : home.listFiles(new MusicFilter()))              {                  mMusicList.add(file.getName());              }              ArrayAdapter<String> musicList = new ArrayAdapter<String>(Activity01.this,R.layout.musicitme, mMusicList);              setListAdapter(musicList);          }      }            private void playMusic(String path)      {          try          {              /* 重置MediaPlayer */              mMediaPlayer.reset();              /* 设置要播放的文件的路径 */              mMediaPlayer.setDataSource(path);              /* 准备播放 */              mMediaPlayer.prepare();              /* 开始播放 */              mMediaPlayer.start();              mMediaPlayer.setOnCompletionListener(new OnCompletionListener()               {                  public void onCompletion(MediaPlayer arg0)                  {                      //播放完成一首之后进行下一首                      nextMusic();                  }              });          }catch (IOException e){}      }        /* 下一首 */      private 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 结尾的歌曲进行测试

更多相关文章

  1. android实现开机自动播放音乐实例(Broadcast、Service)
  2. [置顶] Android(安卓)MediaPlayer+Stagefright框架(音频)图解
  3. Android(安卓)--- MediaPlayer的使用详解
  4. android 播放来电铃声
  5. 写android简易播放音乐遇到的问题
  6. Android(安卓)VideoView简单播放视频
  7. Android应用程序四大组件
  8. android之动画(一)通过AnimationDrawable控制逐帧动画
  9. Android音频播放--SoundPool

随机推荐

  1. 【Android】gradle使用过程的问题解决汇
  2. Android Studio安装及常见错误
  3. Android(安卓)知识点积累(一)
  4. 获得G1的电池电量信息
  5. AndroidStudio、gradle、buildToolsVersi
  6. sqlite c库使用
  7. Android Sensor详解(6)sensor framework层
  8. Android greenDao 使用教程(二) 在Eclipse
  9. Android中定义Viewport需要注意的几个数
  10. Baidu Map开发示例