Android 提供了 MediaPlayer 和 MediaRecorder 两个工具类,来帮助开发者操作音频和视频。我们通过两个小例子来学习一下多媒体资源的使用。
一、 简单音乐播放器
1、新建一个项目Lesson28_Music , 主Activity的名字是 MainMusic.java
2、拷贝
这几张图片到res/drawable目录下,并建立3个xml文件,拷贝love.mp3到res/raw文件中。
play.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
3 | <ITEM android:drawable="@drawable/play_disable" android:state_enabled="false" /> |
4 | <ITEM android:drawable="@drawable/play_50" /> |
pause.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
3 | <ITEM android:drawable="@drawable/pause_disable" android:state_enabled="false" /> |
4 | <ITEM android:drawable="@drawable/pause_50" /> |
stop.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
3 | <ITEM android:drawable="@drawable/stop_disable" android:state_enabled="false" /> |
4 | <ITEM android:drawable="@drawable/stop_50" /> |
3、res/layout/main.xml 的内容如下:
01 | <?xml version="1.0" encoding="utf-8"?> |
03 | <TEXTVIEW android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="简单音乐播放器" android:textsize="25sp" /> |
07 | <IMAGEBUTTON android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/play" android:id="@+id/play" android:layout_margin="4dp" android:adjustviewbounds="true"> |
10 | <IMAGEBUTTON android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/pause" android:id="@+id/pause" android:layout_margin="4dp" android:adjustviewbounds="true"> |
13 | <IMAGEBUTTON android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/stop" android:id="@+id/stop" android:layout_margin="4dp" android:adjustviewbounds="true"> |
4、MainMusic.java的内容如下:
001 | package android.basic.lesson28; |
003 | import java.io.IOException; |
005 | import android.app.Activity; |
006 | import android.media.MediaPlayer; |
007 | import android.media.MediaPlayer.OnCompletionListener; |
008 | import android.media.MediaPlayer.OnPreparedListener; |
009 | import android.os.Bundle; |
010 | import android.view.View; |
011 | import android.view.View.OnClickListener; |
012 | import android.widget.ImageButton; |
013 | import android.widget.Toast; |
015 | public class MainMusic extends Activity { |
018 | private ImageButton play, pause, stop; |
019 | private MediaPlayer mPlayer; |
021 | /** Called when the activity is first created. */ |
023 | public void onCreate(Bundle savedInstanceState) { |
024 | super.onCreate(savedInstanceState); |
025 | setContentView(R.layout.main); |
028 | play = (ImageButton) findViewById(R.id.play); |
029 | pause = (ImageButton) findViewById(R.id.pause); |
030 | stop = (ImageButton) findViewById(R.id.stop); |
033 | play.setEnabled(false); |
034 | pause.setEnabled(false); |
035 | stop.setEnabled(false); |
041 | public void onClick(View v) { |
045 | Toast.makeText(MainMusic.this, "点击播放", Toast.LENGTH_SHORT) |
051 | Toast.makeText(MainMusic.this, "暂停播放", Toast.LENGTH_SHORT) |
057 | Toast.makeText(MainMusic.this, "停止播放", Toast.LENGTH_SHORT) |
066 | play.setOnClickListener(ocl); |
067 | pause.setOnClickListener(ocl); |
068 | stop.setOnClickListener(ocl); |
075 | private void initMediaPlayer() { |
078 | mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.love); |
081 | mPlayer.setOnPreparedListener(new OnPreparedListener() { |
083 | public void onPrepared(MediaPlayer mp) { |
085 | Toast.makeText(MainMusic.this, "onPrepared", Toast.LENGTH_SHORT) |
087 | play.setEnabled(true); |
092 | mPlayer.setOnCompletionListener(new OnCompletionListener() { |
095 | public void onCompletion(MediaPlayer mp) { |
096 | Toast.makeText(MainMusic.this, "onCompletion", |
097 | Toast.LENGTH_SHORT).show(); |
104 | private void stop() { |
106 | pause.setEnabled(false); |
107 | stop.setEnabled(false); |
111 | play.setEnabled(true); |
112 | } catch (IllegalStateException e) { |
114 | } catch (IOException e) { |
121 | private void play() { |
124 | play.setEnabled(false); |
125 | pause.setEnabled(true); |
126 | stop.setEnabled(true); |
130 | private void pause() { |
132 | play.setEnabled(true); |
133 | pause.setEnabled(false); |
134 | stop.setEnabled(true); |
139 | protected void onDestroy() { |
141 | if (stop.isEnabled()) { |
5、运行程序,查看效果

