Android 线程和mediaplayer问题,计时器有声音

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

我正在开发一个Android应用程序,它基于一个计时器,每秒钟必须播放一个你以前选择的声音

问题是:

  • 任何对象都不能在
    线程
    可运行
    中运行
    媒体播放器
  • 我不能调用复制声音的方法
  • 我不能在计时器任务上运行它
你能想到什么吗

谢谢

线程:

public void run(){
而(!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();

}