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

时间:2018-08-31 14:13:46

标签: java android

我的音频无法播放。 有什么问题??

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();
            }
        });
    }
}

3 个答案:

答案 0 :(得分:1)

您在播放按钮上两次呼叫export const loginUser = async () => { await page.waitForSelector( 'form' ); await page.click( 'input[name=email]' ); await page.type( 'input[name=email]', 'me@me.com' ); await page.click( 'input[name=password]' ); await page.type( 'input[name=password]', 'test123' ); await page.screenshot( { path: './test-results/PrefilledLogin.png' } ); await page.keyboard.down( 'Enter' ); await page.screenshot( { path: './test-results/LoginSubmit.png' } ); }; 。您打算致电setOnClickListener()。当您按下播放按钮时,它会暂停。

答案 1 :(得分:0)

您要两次设置播放按钮的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();
            }
        });

答案 2 :(得分:-1)

这与方法范围有关。您正在MediaPlayer方法内创建onCreate实例。该方法结束时,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);

    //...
  }