如何在 setoncompletionlistener 之后使用相同的按钮?

How to use same button after setoncompletitionlistener?

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

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

}}

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

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