【问题标题】:Android application has stopped when adding onCompletionListener to mPlayer将 onCompletionListener 添加到 mPlayer 时,Android 应用程序已停止
【发布时间】:2015-06-05 05:07:22
【问题描述】:

我有一个问题:

我要做的是在播放音频后完成一项活动。我使用以下代码:

public void addButtonListener() {

    mPlay = (ImageButton) findViewById(R.id.bPlay);

    mPlay.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {

            Toast.makeText(Punto.this, "ImageButton is working!", Toast.LENGTH_SHORT).show();
           /* mPlayer = MediaPlayer.create(Punto.this,
                    Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/omw/zipSample/1.ogg"));
            mPlayer.start();*/
            String A = final_route + uriAudio;
            mPlayer = MediaPlayer.create(Punto.this, Uri.parse(final_route + uriAudio));
            mPlayer.start();
            mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

                @Override
                public void onCompletion(MediaPlayer mp) {
                    mp.release();
                    finish();
                }

            });

        }

    });

}

如果我只是删除“setOnCompletionListener”,那么它就可以工作(没有完成活动)。我做错了什么?

谢谢。

【问题讨论】:

  • 在 mplayer.start() 之前添加 setOnCompletionListener。
  • 为什么不粘贴崩溃异常堆栈。

标签: android android-activity media-player


【解决方案1】:

使用下面这一行代替你的行“mp.release();”

public void addButtonListener() {

mPlay = (ImageButton) findViewById(R.id.bPlay);

mPlay.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

        Toast.makeText(Punto.this, "ImageButton is working!", Toast.LENGTH_SHORT).show();
       /* mPlayer = MediaPlayer.create(Punto.this,
                Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/omw/zipSample/1.ogg"));
        mPlayer.start();*/
        String A = final_route + uriAudio;
        mPlayer = MediaPlayer.create(Punto.this, Uri.parse(final_route + uriAudio));

        mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
                if(mPlayer!=null){
                mPlayer.release();
                  mPlayer=null;
                finish();
                 }
            }

        });

mPlayer.start(); } //

});

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 2016-01-29
    相关资源
    最近更新 更多