当特定图像出现在Android上时播放音乐

时间:2012-07-30 09:15:36

标签: android

我有这个代码:
        openHandlera = new ViDBOpenHandler(this);

         Runnable ru = new Runnable(){      
             public void run(){     

                 int imageArrr[] = new int[2];      
                 imageArrr[0] = R.drawable.crossone;      
                 imageArrr[1] = R.drawable.blackone;      

                 int n = (int)( Math.random()*2);      

                 theIm.setImageResource(image[n]);     
                 if(n == 0) {     
                     Log.v("Result", "n is 0 now");     
                     startTimea = System.currentTimeMillis();     
                     final SoundGenerator task=new SoundGenerator();     
                     task.keepPlaying(true);     
                     task.setLoudness(audioLoudnessa);     
                     task.execute(audioFrequencya);     

                     new Handler().postDelayed(new Runnable() {     
                          public void run()           {                           
                            task.keepPlaying(false);      
                        }     
                    }, 1000);      
                }       
                 new Handler().postDelayed(new Runnable() {     
                     public void run() {                     

                         finish();      
                     }      
                }, 30000);       

                  Log.v("test", "is"+ startTimea);      
                  theIm.postDelayed(this, 3000); //set to go off again in 3 seconds.      
            }      
        };       
        theIm.postDelayed(ru,1500);         

在这段代码中,我想说如果我的图像等于imageArrr [1],则播放音乐一秒钟并将当前时间设置为开始时间。问题是我使用if(n == 0)。但它似乎并没有认识到这种实施方式。因为它不会去,如果我听不到声音,甚至不打印任何东西。任何人都可以指导我该怎么做?

1 个答案:

答案 0 :(得分:1)

int n = (int)( Math.random()*2);      

您随机生成n的价值,并且您没有随时

所以你的条件if(n == 0)永远不会成真。而你没有得到适当的输出。

编辑:您可以像这样使用

if(n>2>
   int image =imageArrr[0];
else
   int image =imageArrr[1];