![](/img/trans.png)
[英]Android app to play mp3 file in specific time with countdown timer
[英]How to play and stop an mp3 file in an android app
我已經在eclipse中創建了一個應用來播放和停止mp3文件。 一切都很好,只不過當我播放音頻文件並將其停止並想要重播時,播放btn不會出錯! 我想知道是否有人可以幫助我? 提前致謝。 代碼如下:
package ir.polyglotcenter.childrenmostfrequentwords;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Related to the media player
final MediaPlayer myMediaPlayer = MediaPlayer.create(Main.this, R.raw.audio);
//Button related to play btn
Button myButtonOne = (Button) findViewById(R.id.btn_audio);
myButtonOne.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myMediaPlayer.start();
}
});
//Button related to stop btn
Button myButtonTwo = (Button) findViewById(R.id.btn_stop);
myButtonTwo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myMediaPlayer.stop();
}
});
}
}
如果要在按鈕單擊上開始/停止聲音,然后使用MediaPlayer.start()
和MediaPlayer.pause()
暫停當前播放的聲音,然后在單擊開始按鈕時重新開始。 並覆蓋Activity onPause
以最終停止並釋放MediaPlayer。 在您的代碼中進行如下更改:
onStop按鈕單擊:
myButtonTwo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myMediaPlayer.pause(); //>>pause current sound
myMediaPlayer.seekTo(0); //>> seek to start it again
}
});
並覆蓋Activity的onPause方法:
@Override
protected void onPause{
super.onPause();
myMediaPlayer.stop(); //>>> stop myMediaPlayer
myMediaPlayer.release(); //>>> free myMediaPlayer
}
嘗試此操作(只需在公共區域定義Media Player)
public class Main extends Activity {
MediaPlayer myMediaPlayer = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Related to the media player
myMediaPlayer = MediaPlayer.create(Main.this, R.raw.audio);
//Button related to play btn
Button myButtonOne = (Button) findViewById(R.id.btn_audio);
myButtonOne.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myMediaPlayer.start();
}
});
//Button related to stop btn
Button myButtonTwo = (Button) findViewById(R.id.btn_stop);
myButtonTwo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myMediaPlayer.pause();
}
});
}
}
Point是在if或any循環中實現MediaPlayer
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.buttonPlay:
//mp.reset();
mp=MediaPlayer.create(Ur Context.this, R.raw."ursong.mp3");
mp.start();
break;
case R.id.buttonStop:
mp.stop();
break;
}
}
您必須移動以下代碼:
final MediaPlayer myMediaPlayer = MediaPlayer.create(Main.this, R.raw.audio);
在:
myButtonOne.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final MediaPlayer myMediaPlayer = MediaPlayer.create(Main.this,R.raw.audio);
myMediaPlayer.start();
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.