[英]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.