我已经编辑并尝试了很多方法。基本上有按钮。我想要的是,如果我单击它,它会在每 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/