繁体   English   中英

为什么我的歌曲无法在我的Android应用中正常播放?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM