在我們的生活中那,如何操作上述標題的小問題,小編今天就在這裡給大家分享一點我的小經驗,來增加我們的體驗,希望可以給你們帶來幫助。1把解壓後的StarCraft資料夾放到手機的內建
2020-11-30 07:49:03
本經驗介紹Android裡面的MediaPlayer類來播放音樂,其中MediaPlayer是一個功能很強大的類。
首先開啟我們下載安裝好的Android Studio
然後我們寫入布局程式碼,三個按鈕用來播放,停止,暫停
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView android:text="音訊播放器" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放"
android:id="@+id/button"
android:layout_weight="0.33" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="停止"
android:id="@+id/button2"
android:layout_weight="0.33" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="暫停"
android:id="@+id/button3"
android:layout_weight="0.33" />
</LinearLayout>
</RelativeLayout>
然後在res目錄下面新增raw檔案夾下面新增my.mp3檔案
然後我們在新增後台如下程式碼後臺程式碼
package com.basillee.asus.demo;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
public class MainActivity extends Activity {
private MediaPlayer mediaPlayer;//MediaPlayer物件
private boolean isPause=false;//是否暫停
private File file;//要播放的檔案
private TextView hint;//宣告提示資訊的文字框
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//獲取各功能按鈕
final Button button=(Button)findViewById(R.id.button);//播放
final Button button1=(Button)findViewById(R.id.button2);//暫停
final Button button2=(Button)findViewById(R.id.button3);//停止
hint=(TextView)findViewById(R.id.textView);
if(!isFileExist()){
button.setEnabled(false);
}
//對MediaPlayer物件新增事件監聽,當播放完成時重新開始音樂播放
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
play();
}
});
//對播放按鈕進行事件監聽
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
play();
if(isPause){
button1.setText("暫停");
isPause=false;
}
button1.setEnabled(true);
button2.setEnabled(true);
button.setEnabled(false);
}
});
//對暫停、繼續按鈕新增事件監聽器
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mediaPlayer.isPlaying()&&!isPause){
mediaPlayer.pause();
isPause=true;
((Button)v).setText("繼續");
hint.setText("暫停播放音訊....");
button.setEnabled(true);
}else{
mediaPlayer.start();
((Button)v).setText("暫停");
hint.setText("繼續播放音訊....");
button.setEnabled(false);
}
}
});
//對停止按鈕新增事件監聽器
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.stop();
hint.setText("停止播放音訊...");
button1.setEnabled(false);
button2.setEnabled(false);
button.setEnabled(true);
}
});
}
@Override
protected void onDestroy() {
if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
}
mediaPlayer.release();
super.onDestroy();
}
//判斷檔案是否存在
private boolean isFileExist(){
file=new File(Environment.getExternalStorageDirectory()+File.separator+"myMP32.mp3");
if(file.exists()){
// mediaPlayer=new MediaPlayer();
mediaPlayer=MediaPlayer.create(this,R.raw.my);
try {
// mediaPlayer.setDataSource(file.getAbsolutePath());
// mediaPlayer.prepare();//預載入音訊
// mediaPlayer.start();//播放音樂
}catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(this,"file exist",Toast.LENGTH_LONG).show();
return true;
}else{
Toast.makeText(this,"file don't exist",Toast.LENGTH_LONG).show();
}
return false;
}
//播放音樂的方法
private void play(){
try{
mediaPlayer.reset();//從新設定要播放的音樂
// mediaPlayer.setDataSource(file.getAbsolutePath());
// mediaPlayer.prepare();//預載入音訊
mediaPlayer=MediaPlayer.create(this,R.raw.my);
mediaPlayer.start();//播放音樂
hint.setText("Music is starting");
} catch (Exception e) {
e.printStackTrace();
Log.e("err",e.getMessage());
}
return ;
}
}
主要是play方法
然後我們執行虛擬機器如下圖所示:
然後我們執行此程式點選播放按鈕就可以播放音樂了,其他按鈕功能大家可以自己試試。
相關文章
在我們的生活中那,如何操作上述標題的小問題,小編今天就在這裡給大家分享一點我的小經驗,來增加我們的體驗,希望可以給你們帶來幫助。1把解壓後的StarCraft資料夾放到手機的內建
2020-11-30 07:49:03
星海爭霸2,發現成就裡有個揭露黑幕是黑的,該怎麼辦呢?1首先觸發隱藏關卡「揭露黑幕」是要在「媒體轟炸」這一任務裡用A強制攻擊摧毀右下角的平民建築。如果你已經打過媒體轟炸,
2020-11-30 06:46:19
此製作流程為詳細版,適合所有玩家或者作者。1v1地圖在星海爭霸2乃至所有遊戲中是控制平衡性最重要的因素之一,所以想做地圖,就要先會玩遊戲。在此我將為各位展示目前版本的地圖
2020-11-30 06:06:43
使用者有遇到過在玩星海爭霸2遊戲時會出現閃退現象,這是驅動問題或系統設定不當導致的,下面一起來看看有什麼解決方法吧。1首先,換一個顯示卡驅動,可通過官方網站下載軟體更新驅
2020-11-30 05:46:43
教你從青銅打到大師~1第1課.青銅組青銅組目標:把錢花光,瞭解基本的建築順序所謂學會4BG,白銀2800青銅組的P民們第一課是學會4BG的基本建築順序,然後把錢用來刷兵[專業詞彙解釋
2020-11-30 05:29:21
星海爭霸1是一款90年代末流行的即時戰略遊戲,居然到現在還有很多人玩,一是說明這個遊戲質量非常好,二是證明此類遊戲後繼無人,下面介紹一下星海爭霸1蟲族任務第七關攻略以供參考
2020-11-30 02:29:46