[英]Why doesn't my song work in my android app?
我的音頻無法播放。 問題是什么 ??
public class AudioActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_audio);
final MediaPlayer mp = MediaPlayer.create(AudioActivity.this, R.raw.boot);
Button play = (Button) findViewById(R.id.play);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//mp = MediaPlayer.create(AudioActivity.this, R.raw.boot);
mp.start();
}
});
Button bause = (Button) findViewById(R.id.bause);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//mp = MediaPlayer.create(AudioActivity.this, R.raw.boot);
mp.pause();
}
});
}
}
您在播放按鈕上兩次調用了setOnClickListener()
。 您打算調用bause.setOnClickListener()
。 當您按下播放按鈕時,它正在暫停。
您要設置播放按鈕的OnClickListener兩次。 因此,當您單擊播放按鈕時,它將暫停媒體播放器而不是播放它。
將其更改為以下內容:
Button bause = (Button) findViewById(R.id.bause);
bause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//mp = MediaPlayer.create(AudioActivity.this, R.raw.boot);
mp.pause();
}
});
這與方法范圍有關。 您正在onCreate
方法中創建MediaPlayer
實例。 當該方法結束時, mp
變量也消失了,因為它是在方法的作用域中創建的。 當執行onClickListener
,該變量不再存在。 將變量聲明移到類的作用域,以便在類的生存期內保持可用。 就像是:
public class AudioActivity extends AppCompatActivity {
private MediaPlayer mp;
//...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_audio);
mp = MediaPlayer.create(AudioActivity.this, R.raw.boot);
//...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.