MediaPlayer使用之一 音频播放
2012-03-26 11:23
260 查看
1,xml布局文件
2,代码
本文出自 “小新专栏” 博客,请务必保留此出处http://mikewang.blog.51cto.com/3826268/817153
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/btnStart" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Start Playing Audio" /> <Button android:id="@+id/btnPause" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Pause Player" /> <Button android:id="@+id/btnRestart" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Restart Player" /> <Button android:id="@+id/btnStop" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Stop Player" /> </LinearLayout>
2,代码
package com.mike.activity; import java.io.File; import java.io.IOException; import android.app.Activity; import android.content.res.AssetFileDescriptor; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MediaPlayerDemoActivity extends Activity implements OnClickListener { private Button btnStart; private Button btnPause; private Button btnRestart; private Button btnStop; public static final String AUDIO_PATH = "http://www.baidu.mp3/song1.mp3";// 网络音乐 // Environment.getExternalStorageDirectory() + "/Music/song1.mp3" ; //sdcard // 音乐文件 // Environment.getExternalStorageDirectory() + "/Movies/vedio.mp4"; private MediaPlayer mMediaPlayer; private int currentPosition; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnStart = (Button) findViewById(R.id.btnStart); btnPause = (Button) findViewById(R.id.btnPause); btnRestart = (Button) findViewById(R.id.btnRestart); btnStop = (Button) findViewById(R.id.btnStop); btnStart.setOnClickListener(this); btnPause.setOnClickListener(this); btnRestart.setOnClickListener(this); btnStop.setOnClickListener(this); } public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btnStart: playAudio(AUDIO_PATH);// break; case R.id.btnPause: if (mMediaPlayer != null && mMediaPlayer.isPlaying()) { currentPosition = mMediaPlayer.getCurrentPosition(); mMediaPlayer.pause(); } break; case R.id.btnRestart: if (mMediaPlayer != null && !mMediaPlayer.isPlaying()) { mMediaPlayer.seekTo(currentPosition); mMediaPlayer.start(); } break; case R.id.btnStop: if (mMediaPlayer != null) { mMediaPlayer.stop(); currentPosition = 0; } break; } } private void playAudio(String url) {// 播放url音乐文件 try { killMediaPlayer();// 播放前,先kill原来的mediaPlayer mMediaPlayer = new MediaPlayer(); mMediaPlayer.setDataSource(url); mMediaPlayer.prepare(); mMediaPlayer.start(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void killMediaPlayer() { // TODO Auto-generated method stub if (null != mMediaPlayer) { mMediaPlayer.release(); } } private void playLocalAudio() {// 播放本地音乐文件 mMediaPlayer = MediaPlayer.create(this, R.raw.song1); mMediaPlayer.start();// 在此情况下,不需要调用prepare()方法 } private void playLocalAudio_UsingDescriptor() {//先打开文件,再将文件给mediaPlayer try { AssetFileDescriptor fileDesc = getResources().openRawResourceFd( R.raw.song1); if (null != fileDesc) { mMediaPlayer = new MediaPlayer(); mMediaPlayer.setDataSource(fileDesc.getFileDescriptor(), fileDesc.getStartOffset(), fileDesc.getLength()); fileDesc.close(); mMediaPlayer.prepare(); mMediaPlayer.start(); } } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); killMediaPlayer();//destroy中释放资源 } }
本文出自 “小新专栏” 博客,请务必保留此出处http://mikewang.blog.51cto.com/3826268/817153
相关文章推荐
- WPF 播放音频使用的SoundPlayer和MediaPlayer
- Android -- 视频音频多媒体播放,在线播放, MediaPlayer, SurfaceView, SoundPool, Timer定时器使用
- 从头学Android之多媒体--使用MediaPlayer播放音频
- Android之多媒体使用——MediaPlayer播放音频
- 使用MediaPlayer播放项目res/raw和res/assets下的音频文件
- Android之多媒体--使用MediaPlayer播放音频
- 使用MediaPlayer间隔播放一组音频文件
- Android -- 视频音频多媒体播放,在线播放, MediaPlayer, SurfaceView, SoundPool, Timer定时器使用
- Android 使用MediaPlayer播放assets目录的音频文件
- Andriod 使用MediaPlayer播放音频文件
- android使用MediaPlayer播放音频
- Android 使用MediaPlayer播放音频
- 使用MediaRecorder录制音频,用MediaPlayer播放音频
- 使用MediaPlayer播放音频文件
- Android 本地音频播放 MediaPlayer使用方法
- 【Android开发】多媒体应用开发-使用MediaPlayer播放音频
- Andriod 使用MediaPlayer播放音频文件
- 01.Android之多媒体--使用MediaPlayer播放音频02
- 第 13 章 使用 MediaPlayer 播放音频
- Andriod 使用MediaPlayer播放音频文件