在onClick中重放wav声音时的延迟问题

时间:2016-09-09 17:52:55

标签: java android android-studio

按下按钮时我会播放一个wav声音,当我仍在播放声音的时候我再次尝试播放时会有一个短暂的延迟并且没有按预期正常启动!我试图让声音在任何时候都能在每次按下时保持干净和快速,这是我的java代码谢谢



public class MainActivity extends AppCompatActivity {


    private MediaPlayer mp;


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




        final ImageView bellImage = (ImageView) findViewById(R.id.bellImage);

        bellImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                loopMP();
                mp = MediaPlayer.create(getApplicationContext(), R.raw.ding2);
                mp.start();

            }
        });

    }

    public void playMusic() {

        if (mp != null) {
            mp.start();
        }
    }


    @Override
    protected void onDestroy() {

        if (mp != null && mp.isPlaying()) {

            mp.stop();
            mp.release();
            mp = null;
        }
        super.onDestroy();
    }

    private void loopMP(){
        if (mp != null){ mp.stop(); mp.release(); mp = null; }
    }



}




1 个答案:

答案 0 :(得分:0)

每次用户单击按钮时,不使用release()和create()媒体播放器对象,只尝试创建()一次。然后在onClick()内部,尝试seekTo(0)从媒体文件的开头倒带,然后调用start()再次播放。