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

首頁 > 系統 > Android > 正文

Android媒體開發之音樂播放器

2019-12-12 01:22:50
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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卡中音樂的播放。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长沙县| 邻水| 南岸区| 巴南区| 筠连县| 米泉市| 阳西县| 宝鸡市| 清水河县| 布拖县| 山西省| 光泽县| 潞城市| 都安| 旬阳县| 邻水| 贡山| 漳州市| 军事| 汶上县| 宁武县| 仲巴县| 介休市| 高青县| 娄底市| 弥渡县| 凤城市| 绵阳市| 乌拉特中旗| 梨树县| 延庆县| 盐边县| 茶陵县| 新津县| 康保县| 黔西县| 大安市| 突泉县| 饶河县| 神农架林区| 中宁县|