如何让MediaPlayer等待其他点击请求?

时间:2017-06-09 15:52:37

标签: java android

有一个播放按钮(声音评论),当我点击它播放时,但是当我多次击中时,它会成倍增加。 我想用其他主题代码来阻止这个,没有任何帮助,不知道吗?

img_scream1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
                if(mediaControl.isPlaying()==true){
                    mediaControl.pause();
                }
            else
                {
                    mediaControl = MediaPlayer.create(java_sounds_scary.this, R.raw.hooray);
                    mediaControl.start();
                }


        }
    });

2 个答案:

答案 0 :(得分:0)

将您的代码更改为以下内容:

    running py2exe
    Traceback (most recent call last):
      File "setup.py", line 14, in <module>
        }, zipfile=None, console=['main.py'])
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\distutils\core.py", line 148, in setup
        dist.run_commands()
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\distutils\dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\distutils_buildexe.py", line 188, in run
        self._run()
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\distutils_buildexe.py", line 267, in _run
        builder.analyze()
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\runtime.py", line 173, in analyze
        target.analyze(mf)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\runtime.py", line 74, in analyze
        modulefinder.run_script(self.script)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 86, in run_script
        self._scan_code(mod.__code__, mod)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 394, in _scan_code
        self.safe_import_hook(name, mod, fromlist, level)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 138, in safe_import_hook
        self.import_hook(name, caller, fromlist, level)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 120, in import_hook
        module = self._gcd_import(name)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 274, in _gcd_import
        return self._find_and_load(name)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 357, in _find_and_load
        self._scan_code(module.__code__, module)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 394, in _scan_code
        self.safe_import_hook(name, mod, fromlist, level)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 138, in safe_import_hook
        self.import_hook(name, caller, fromlist, level)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 120, in import_hook
        module = self._gcd_import(name)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 274, in _gcd_import
        return self._find_and_load(name)
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 356, in _find_and_load
        if module.__code__:
      File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 637, in __code__
        raise RuntimeError("should read __file__ to get the source???")
    RuntimeError: should read __file__ to get the source???

答案 1 :(得分:0)

每次都不要创建mediaControl实例(使歌曲从开始加载)。相反,您可以将mediaControl初始化为null,并在null

时创建它的实例
    mediaControl =null;
    img_scream1.setOnClickListener(new View.OnClickListener(){
        @Override
            public void onClick (View view){
                if (mediaControl == null) {
                    mediaControl = MediaPlayer.create(java_sounds_scary.this, R.raw.hooray);
                }
                if (mediaControl.isPlaying() == true) {
                    mediaControl.pause();
                } else {
                    mediaControl.start();
                }
        }
    });