java - 每 5 秒重复一次声音

标签 java android audio logcat

我已经编辑并尝试了很多方法。基本上有按钮。我想要的是,如果我单击它,它会在每 5 秒后再次开始播放“北欧”声音,直到我再次单击该按钮。我写的脚本对我来说似乎很好,但每次都会崩溃:(。这是代码和错误,你能帮忙吗?

    //BUTTON SHIT\\

    teebheli = false;
    magamine = MediaPlayer.create(this, R.raw.norse);
    bhelitegija = (Button) findViewById(R.id.bTeeHeli);
    bhelitegija.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (teebheli == false ){
                bhelitegija.setText("Lõpeta heli!");
                magamine.start();
                teebheli = true;
                }
            if (teebheli == true) {
                bhelitegija.setText("Tee heli!");
                magamine.stop();
                teebheli = false;
            }

            }

    });
    piiksumine = new Thread(){
        public void run(){
            try {
                int piiksumine = 0;
                while (piiksumine < 5000) {
                    sleep(100);
                    piiksumine = piiksumine + 100;
                }
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            finally {
                piiksumine.start();
            }
            }
        };

当我点击按钮时出现错误:

08-11 18:09:36.738: ERROR/MediaPlayer(1224): start called in state 0
08-11 18:09:36.738: ERROR/MediaPlayer(1224): error (-38, 0)
08-11 18:09:36.746: ERROR/MediaPlayer(1224): stop called in state 0
08-11 18:09:36.746: ERROR/MediaPlayer(1224): error (-38, 0)
08-11 18:09:36.777: ERROR/MediaPlayer(1224): Error (-38,0)
08-11 18:09:36.786: ERROR/MediaPlayer(1224): Error (-38,0)

最佳答案

您尚未为 PreferenceManager.getDefaultSharedPreferencesName 设置名称。

(脱离我的头脑,但尝试类似下面的事情):

PreferenceManager.setDefaultValues(context, sharedPreferencesName, 
    sharedPreferencesMode, resId, readAgain);

在尝试获取共享首选项之前执行此操作。

将任何你喜欢的值放入其中,如果变量名称不清楚,请检查文档:)

希望这对您有所帮助!

编辑:

现在您正在尝试访问在另一个线程中实例化的 MediaPlayer。你不能这样做。您需要在同一线程中使用 MediaPlayer.create() 和 MediaPlayer.start()。

关于java - 每 5 秒重复一次声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030523/

相关文章:

android studio运行app后台运行

windows-phone-7 - 获得主音频音量

android - Phonegap ChildBrowser - 最小化 child 直到加载

python - 无法正确生成 Numpy FFT

C++ 在后台读取文件

java - Java Spring 应用程序的插件

java - 将 .txt 文件加载到 textarea Java

JavaEE全局捕获运行时异常

java - 方法改变,然后返回接收到的参数;是好还是坏?

java.io.FileNotFoundException : C:\Users\USER\. AndroidStudio2.1\system\port.lock(拒绝访问)