首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

【Android开发学习04】长时间的音乐播发实现MediaPlayer

2013-02-04 
【Android开发学习04】长时间的音乐播放实现MediaPlayer长时间的音乐因为体积比较大,放在手机内存中,对资源

【Android开发学习04】长时间的音乐播放实现MediaPlayer
长时间的音乐因为体积比较大,放在手机内存中,对资源的占用太大。

MediaPlayer类可以用来播放音频、视频和流媒体,MediaPlayer包含了Audio和Video的播放功能

在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。

MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的。


一.基础知识:

首先来看看MediaPlayer的生命周期:

【Android开发学习04】长时间的音乐播发实现MediaPlayer


下边是MediaPlayer提供的常用方法:



2. 代码编辑(\src\wyf\zcl\MyActivity.java):

package wyf.zcl;import android.app.Activity;//引入相关包import android.media.AudioManager;//引入相关包import android.media.MediaPlayer;//引入相关包import android.os.Bundle;//引入相关包import android.view.View;//引入相关包import android.widget.Button;//引入相关包import android.widget.Toast;public class MyActivity extends Activity {    /** Called when the activity is first created. */private Button bPlay;//播放按钮private Button bPause;//暂停按钮private Button bStop;//停止按钮private Button bAdd;//增大音量private Button bReduce;//降低音量private boolean pauseFlag=false;//暂停标记,true暂停态,false非暂停态MediaPlayer mp;//MediaPlayer引用AudioManager am;//AudioManager引用    @Override    public void onCreate(Bundle savedInstanceState) {//Activity创建时调用        super.onCreate(savedInstanceState);        setContentView(R.layout.main);//设置Activity的显示内容        bPlay=(Button)findViewById(R.id.ButtonPlay);//播放按钮的实例化        bPause=(Button)findViewById(R.id.ButtonPause);//暂停按钮的实例化        bStop=(Button)findViewById(R.id.ButtonStop);//停止按钮的实例化        bAdd=(Button)findViewById(R.id.ButtonVAdd);//增大音量按钮的实例化        bReduce=(Button)findViewById(R.id.ButtonVReduce);//降低音量按钮的实例化        mp=new MediaPlayer();        am=(AudioManager) this.getSystemService(this.AUDIO_SERVICE);        bPlay.setOnClickListener(new View.OnClickListener() {//播放按钮的监听器@Overridepublic void onClick(View v) { try{        mp.setDataSource("/sdcard/music/sound_of_dream_DJ.mp3");//加载音频,进入Initialized状态。        }catch(Exception e){e.printStackTrace();}        try{        mp.prepare();//进入prepared状态。        }catch(Exception e){e.printStackTrace();}mp.start();//播放音乐Toast.makeText(MyActivity.this, "播放音乐", Toast.LENGTH_SHORT).show();}});        bPause.setOnClickListener(new View.OnClickListener() {//暂停按钮添加监听器@Overridepublic void onClick(View v) {if(mp.isPlaying()){//如果是在播放态mp.pause();//调用暂停方法pauseFlag=true;//设置暂停标记}else if(pauseFlag){mp.start();//播放音乐pauseFlag=false;//设置暂停标记Toast.makeText(MyActivity.this, "暂停播放", Toast.LENGTH_SHORT).show();}}});        bStop.setOnClickListener(new View.OnClickListener() {//停止按钮添加监听器@Overridepublic void onClick(View v) {mp.stop();//停止播放     mp.reset();//重置状态到uninitialized态     try{        mp.setDataSource("/sdcard/music/sound_of_dream_DJ.mp3");//加载音频,进入Initialized状态。     }catch(Exception e){e.printStackTrace();}        try{        mp.prepare();//进入prepared状态。        }catch(Exception e){e.printStackTrace();}        Toast.makeText(MyActivity.this, "停止播放", Toast.LENGTH_SHORT).show();}});        bAdd.setOnClickListener(new View.OnClickListener() {//音量增大按钮添加监听器@Overridepublic void onClick(View v) {am.adjustVolume(AudioManager.ADJUST_RAISE, 0);//增大音量System.out.println("faaa");Toast.makeText(MyActivity.this, "增大音量", Toast.LENGTH_SHORT).show();}});        bReduce.setOnClickListener(new View.OnClickListener() {//音量降低按钮添加监听器@Overridepublic void onClick(View v) {am.adjustVolume(AudioManager.ADJUST_LOWER, 0);//减小音量Toast.makeText(MyActivity.this, "减小音量", Toast.LENGTH_SHORT).show();}});    }}

播放的是SD卡上的" /sdcard/music/sound_of_dream_DJ.mp3 "文件。


参考文章:http://wiki.emsym.com/index.php?title=Android_MediaPlayer&oldid=5476

                    http://blog.csdn.net/chenzheng_java/article/details/6263184




热点排行
Bad Request.