首页 > 系统 > Android > 正文

Android播放音乐案例分享

2019-12-12 02:04:10
字体:
来源:转载
供稿:网友

本文实例为大家分享了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;    }  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表