android 播放音乐示例
16lz
2022-04-14
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 结尾的歌曲进行测试
更多相关文章
- android实现开机自动播放音乐实例(Broadcast、Service)
- [置顶] Android(安卓)MediaPlayer+Stagefright框架(音频)图解
- Android(安卓)--- MediaPlayer的使用详解
- android 播放来电铃声
- 写android简易播放音乐遇到的问题
- Android(安卓)VideoView简单播放视频
- Android应用程序四大组件
- android之动画(一)通过AnimationDrawable控制逐帧动画
- Android音频播放--SoundPool