Android 线程和mediaplayer问题,计时器有声音
我正在开发一个Android应用程序,它基于一个计时器,每秒钟必须播放一个你以前选择的声音 问题是:Android 线程和mediaplayer问题,计时器有声音,android,multithreading,audio,media-player,timertask,Android,Multithreading,Audio,Media Player,Timertask,我正在开发一个Android应用程序,它基于一个计时器,每秒钟必须播放一个你以前选择的声音 问题是: 任何对象都不能在线程或可运行中运行媒体播放器 我不能调用复制声音的方法 我不能在计时器任务上运行它 你能想到什么吗 谢谢 线程: public void run(){ 而(!detenido)//Bolean用于停止线程 { try { Servicio servicios = new Servicio(); switch(se
- 任何对象都不能在
或线程
中运行可运行
媒体播放器
- 我不能调用复制声音的方法
- 我不能在计时器任务上运行它
而(!detenido)//Bolean用于停止线程 {
try {
Servicio servicios = new Servicio();
switch(segundosesperar){ //Int to select the ms to slep
case 0:
this.sleep(1500);
servicios.intento1(); //the metod with " mp.start()"
dormir = 1500;
break;
case 1:
this.sleep(1600);
servicios.intento1();
dormir = 1600;
break;
case 2:
this.sleep(1700);
servicios.intento1();
dormir = 1700;
break;
case 3:
this.sleep(1800);
servicios.intento1();
dormir = 1800;
break;
case 4:
this.sleep(1900);
servicios.intento1();
dormir = 1900;
break;
case 5:
this.sleep(2000);
servicios.intento1();
dormir = 2000;
break;
default:
this.sleep(1750);
servicios.intento1();
dormir = 1750;
break;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
piedras =piedras+1; //Counter cronometer +1
cron = piedras+"";
//Set the counter in the activity
handler.setHcron(cron);
handler.act();
cronoparaganar = cron;
if ( piedras == piedrasmodo){
tocarsirena = true;
}
}
}
在服务中启动播放声音的方法:
公共无效意向1(){
您可以在额外的
服务中运行MediaPlayer
查看有关服务的信息
此外,使用服务处理MediaPlayer
可能也很有用
然后,您可以调用服务的函数来处理MediaPlayer
您可以共享一些您已经尝试过的代码吗?您的意思是从线程调用再现声音的服务方法吗?是的,您可以调用等待一秒钟的线程,然后调用函数。这可能不是这是处理这个问题的最佳版本,但它应该可以工作。我做了,但没有工作,请参阅描述中的代码(我已经编辑了文章)。您首先必须在活动之外启动服务。看看如何处理服务
mp= MediaPlayer.create(this, R.raw.censura);
mp.start();
}