2017-01-10 4 views
-4

Я решил запрограммировать свое первое приложение для Android. Я хочу простое приложение, которое делает звук после случайного количества времени. Это следует повторять 20 раз (каждый раз каждый раз должен составлять несколько минут). Это нужно активировать с помощью кнопки. Я реализовал butterknife в своей программе.Android-приложение не работает

Это мой метод:

@OnClick(R.id.startbutton) 
void spielen() { 
    for(int i=0; i<20;i++) { 
     int rando = (int) ((Math.random() * 10) + 1); //create a random int from 1-10 
     try { 
      Thread.sleep(60000*rando);     //delay the for loop by random*1min 
     } catch(InterruptedException ex) { 
      Thread.currentThread().interrupt(); 
     } 
     MediaPlayer cheer = MediaPlayer.create(MainActivity, this, R.raw.fischkarte); 

     cheer.start();         //play the sound 
    } //start the loop again (20 times) 
}   // now you should be able to push the button again and start it all over again 

Ошибка с этой строки кода:

MediaPlayer cheer = MediaPlayer.create(MainActivity, this, R.raw.fischkarte); 

программа говорит, что это был

ожидает выражение.

Я действительно новичок в Android, и у меня есть эта строка из видео с youtube. Итак, любые предложения?

+3

Я предполагаю, что это должно быть «MainActivit.this» вместо «MainActivity, this» – WenChao

ответ

0

Первого:
В вашем случае, у вас есть опечатка с этой линией.
Вместо:

MediaPlayer cheer = MediaPlayer.create(MainActivity, this, R.raw.fischkarte); 

Использование:

MediaPlayer cheer = MediaPlayer.create(MainActivity.this, R.raw.fischkarte); 

MediaPlayer статический метод create() принимает два аргумента, а не три. Кроме того, вы не можете просто отправить только имя активности.

Второе:
Я думаю, что вы будете сталкиваться с другой проблемой, если вы прервать основной поток.
Попробуйте вместо этого остановить звук через некоторое время и после запуска снова.

Смежные вопросы