国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android播放音樂案例分享

2019-10-22 18:28:11
字體:
來源:轉載
供稿:網友

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扶风县| 缙云县| 东方市| 阿坝| 淮阳县| 梁河县| 宣恩县| 江门市| 庄河市| 长沙县| 新田县| 冷水江市| 政和县| 钟山县| 广德县| 夏津县| 新蔡县| 库尔勒市| 遵化市| 阿拉尔市| 贵阳市| 扎鲁特旗| 滕州市| 满城县| 海丰县| 丰都县| 嘉兴市| 岳普湖县| 军事| 平潭县| 吉木萨尔县| 九龙坡区| 澳门| 丹巴县| 河津市| 禄丰县| 巍山| 泌阳县| 蕉岭县| 莱州市| 巍山|