本文实例为大家分享了AndroID媒体开发之音乐播放器的具体代码,供大家参考,具体内容如下
可以对音乐文件实现播放、暂停、重播和停止功能。退出应用和回到桌面时音乐停止。
主界面:
主界面配置文件mian.xml:
<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:tools="http://schemas.androID.com/tools" androID:ID="@+ID/container" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical" tools:context="com.example.musicplay.MainActivity" > <TextVIEw androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:text="@string/filename" /> <EditText androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:layout_weight="0.00" androID:background="#B0C4DE" androID:text="Payphone.mp3" androID:ID="@+ID/filename" /> <linearLayout androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:orIEntation="horizontal" > <button androID:ID="@+ID/playbutton" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:onClick="mediaplay" androID:text="@string/playbutton" /> <button androID:ID="@+ID/pausebutton" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:onClick="mediaplay" androID:text="@string/pausebutton" /> <button androID:ID="@+ID/resetbutton" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:onClick="mediaplay" androID:text="@string/resetbutton" /> <button androID:ID="@+ID/stopbutton" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:onClick="mediaplay" androID:text="@string/stopbutton" /> </linearLayout> </linearLayout>
主界面的Activity
MainActivity.java:
package com.example.musicplay; import java.io.file; import androID.app.Activity; import androID.content.Context; import androID.media.MediaPlayer; import androID.media.MediaPlayer.OnPreparedListener; import androID.os.Bundle; import androID.os.Environment; import androID.telephony.PhonestateListener; import androID.telephony.TelephonyManager; import androID.vIEw.VIEw; import androID.Widget.button; import androID.Widget.EditText; import androID.Widget.Toast; public class MainActivity extends Activity { private EditText nameText; private String path; private int position; private MediaPlayer mediaplayer; private boolean pause; protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); nameText=(EditText) this.findVIEwByID(R.ID.filename); mediaplayer=new MediaPlayer(); } //以下方法会造成只要应用在后台音乐都会停止播放 @OverrIDe //当应用不在前台时,停止播放 protected voID onPause() { if(mediaplayer.isPlaying()){ position=mediaplayer.getCurrentposition(); mediaplayer.stop(); } super.onPause(); } @OverrIDe protected voID onResume() { if(position>0&&path!=null){ play(); mediaplayer.seekTo(position); position=0; } super.onResume(); } @OverrIDe protected voID onDestroy() { mediaplayer.release(); mediaplayer=null; super.onDestroy(); } public voID mediaplay(VIEw v){ switch (v.getID()) { case R.ID.playbutton: String filename=nameText.getText().toString(); //Environment.getExternalStorageDirectory()检查外部存储设备的可用性 file audio=new file(Environment.getExternalStorageDirectory(),filename); if(audio.exists()){ //获取SDCard目录,2.2的时候为:/mnt/sdcart 2.1的时候为:/sdcard,所以使用静态方法得到路径会好一点。 path=audio.getabsolutePath(); play(); } else{ path=null; Toast.makeText(getApplicationContext(),R.string.error,1).show(); } break; case R.ID.pausebutton: if(mediaplayer.isPlaying()){ mediaplayer.pause(); pause=true; ((button)v).setText(R.string.continues); }else{ if(pause){ mediaplayer.start(); pause=false; ((button)v).setText(R.string.pausebutton); } } break; case R.ID.resetbutton: if(mediaplayer.isPlaying()){ mediaplayer.seekTo(0);//从开始位置播放 }else{ if(path!=null){ play(); } } break; case R.ID.stopbutton: if(mediaplayer.isPlaying()){ mediaplayer.stop(); } break; default: break; } } private voID play() { try { mediaplayer.reset();//把各项参数恢复到初始化状态 mediaplayer.setDataSource(path); mediaplayer.prepare();//进行缓冲 //设置缓冲监听器 mediaplayer.setonPreparedListener(new OnPreparedListener() { //缓冲完毕后调用onPrepared方法 public voID onPrepared(MediaPlayer mp) { // 里面写缓冲完要干的事 mediaplayer.start(); } }); } catch (Exception e) { e.printstacktrace(); } } }
实现了简单的SD卡中音乐的播放。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的Android媒体开发之音乐播放器全部内容,希望文章能够帮你解决Android媒体开发之音乐播放器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)