Android播放音乐案例分享
程序员文章站
2023-12-19 15:22:16
本文实例为大家分享了android播放音乐案例的具体实现代码,供大家参考,具体内容如下
效果:
分析:
和上一篇文章的结构是一样的,只不过我们需要在这里里面加...
本文实例为大家分享了android播放音乐案例的具体实现代码,供大家参考,具体内容如下
效果:
分析:
和上一篇文章的结构是一样的,只不过我们需要在这里里面加上播放音乐的一些操作:
其实也就是调用系统的播放音乐的api而已,写在服务里面就好,
//媒体播放器 private mediaplayer player; public void oncreate() { file file=new file(environment.getexternalstoragedirectory(),"a.mp3"); player =new mediaplayer(); try { //设置播放源 player.setdatasource(file.getabsolutepath()); } catch (exception e) { e.printstacktrace(); } log.d("fanfan", "oncreate"); super.oncreate(); }
public int onstartcommand(intent intent, int flags, int startid) { try { //设置准备资源监听器,当资源准备完毕,回调监听器的onprepared函数 player.setonpreparedlistener(new onpreparedlistener() { @override //准备资源准备好了会调用这个 public void onprepared(mediaplayer arg0) { //播放音乐 player.start(); } }); //准备资源,好来播放音乐 //异步函数,这个函数内部会开启一个子线程 player.prepareasync(); } catch (exception e) { e.printstacktrace(); } log.d("fanfan", "onstartcommand"); return super.onstartcommand(intent, flags, startid); }
public void ondestroy() { //结束音乐 player.stop(); //释放资源,如果播放下一首的话,就用不着释放资源 player.release(); log.d("fanfan", "ondestroy"); super.ondestroy(); }
第一步,照样找个类来继承服务类
package fry; import java.io.file; import java.io.ioexception; import android.app.service; import android.content.intent; import android.media.mediaplayer; import android.media.mediaplayer.onpreparedlistener; import android.os.environment; import android.os.ibinder; import android.util.log; public class myservice extends service{ //媒体播放器 private mediaplayer player; /** * 当绑定这个服务的时候调用 */ @override public ibinder onbind(intent arg0) { log.d("fanfan", "onbind"); return null; } /** * service被创建后调用 */ @override public void oncreate() { file file=new file(environment.getexternalstoragedirectory(),"a.mp3"); player =new mediaplayer(); try { //设置播放源 player.setdatasource(file.getabsolutepath()); } catch (exception e) { e.printstacktrace(); } log.d("fanfan", "oncreate"); super.oncreate(); } /** * service被start后调用 */ @override public int onstartcommand(intent intent, int flags, int startid) { try { //设置准备资源监听器,当资源准备完毕,回调监听器的onprepared函数 player.setonpreparedlistener(new onpreparedlistener() { @override //准备资源准备好了会调用这个 public void onprepared(mediaplayer arg0) { //播放音乐 player.start(); } }); //准备资源,好来播放音乐 //异步函数,这个函数内部会开启一个子线程 player.prepareasync(); } catch (exception e) { e.printstacktrace(); } log.d("fanfan", "onstartcommand"); return super.onstartcommand(intent, flags, startid); } /** * service被停止后调用 */ @override public void ondestroy() { //结束音乐 player.stop(); //释放资源,如果播放下一首的话,就用不着释放资源 player.release(); log.d("fanfan", "ondestroy"); super.ondestroy(); } }
第二步,该配置的监听服务也是要配置的
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.playmusic" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="19" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="fry.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name="fry.activity01" android:exported="true"></activity> <service android:name="fry.myservice"> </service> </application> </manifest>
第三步,播放或者结束音乐
package fry; import com.example.playmusic.r; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; public class activity01 extends activity{ @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.activity01); } public void onclick(view view){ intent intent=new intent(); intent.setclass(this, myservice.class); switch(view.getid()){ case r.id.btn_start://播放音乐,启动服务 startservice(intent); break; case r.id.btn_stop://结束音乐,停止服务 stopservice(intent); break; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。