【问题标题】:My Quit Button is not playing the sound when i click it, except this all the button are playing sound. Can anyone solve this problem?当我单击它时,我的退出按钮没有播放声音,除了这个所有按钮都在播放声音。任何人都可以解决这个问题吗?
【发布时间】:2021-04-06 16:22:37
【问题描述】:

// 这是我的应用退出按钮,它会破坏活动并让用户退出应用。当我单击此按钮时,我想 // 播放声音,但不幸的是,声音没有播放并且活动 //destroys。请帮我解决这个问题。除了这个按钮,我所有的按钮声音都在工作。

// 这是我的第二个活动,在这个活动中,我使用了一个按钮来退出应用程序,但我还希望按钮在用户单击按钮时播放声音。但它没有播放声音并//退出破坏活动的应用程序。请告诉我如何在//单击期间播放退出按钮上的声音

      mExitApp = (Button)findViewById(R.id.exit_app);

           final MediaPlayer mp = MediaPlayer.create(this, R.raw.sample2);

            mExitApp.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {

                    mp.start();
    
                    ScoreActivity.this.finish();

                    System.exit(0);
    
                }
            });

【问题讨论】:

    标签: android button audio click media-player


    【解决方案1】:

    一种快速而肮脏的方法是在完成活动/过程之前等待声音结束播放。

        public void onClick(View v) {
                        mp.start();
                        final Handler handler = new Handler(Looper.getMainLooper());
                        handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            ScoreActivity.this.finish();
                            System.exit(0);
                          }
                        }, 300);
                    }
    

    更清洁的解决方案可能涉及MediaPlayer.OnCompletionListener

    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            finish(); // finish current activity
        }
    });
    

    或者您可以在前台/后台服务中播放声音。但是你不应该像现在那样杀死整个进程 (System.exit(0))。

    【讨论】:

    • 非常感谢您的帮助。第二个是最好的解决方案。
    猜你喜欢
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    相关资源
    最近更新 更多