首页 > 解决方案 > 如何在 setoncompletionlistener 之后使用相同的按钮?

问题描述

在我为 MediaPlayer 设置了 oncompletetionlistener 之后。在媒体播放器发布后再次使用相同的按钮,它会使应用程序崩溃。媒体播放器发布后如何调用事件来播放音频?

public class MainActivity extends AppCompatActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    Button bt1 = findViewById(R.id.b1);
    final MediaPlayer mp1 = MediaPlayer.create(this, R.raw.button1);
    bt1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mp1.start();
            mp1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    mp1.release();
                }
            });
        }
    });

}}

标签: javaandroidbuttonaudioandroid-mediaplayer

解决方案


释放媒体播放器后,您必须重新初始化MediaPlayer对象。

if (mp1 == null) mp1 = 新媒体播放器();


推荐阅读