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、运行程序,查看效果

