Вы должны использовать getBaseContext.Вместо этого, если этот runnable находится внутри действия, вы должны сохранить контекст в переменной класса, например:
public class MainActivity extends Activity {
private Context context;
public void onCreate( Bundle icicle ) {
context = this;
// More Code
}
// More code
new Runnable(){
public void run() {
MediaPlayer mp = MediaPlayer.create(context, R.raw.soundfile);
while (true) {
if (something)
play something
}
}
}
}
Также у вас не должно быть бесконечного цикла, подобного этому, воспроизводящего звук снова и сноватам должен быть сон, чтобы звук не проигрывался снова и снова в течение короткого промежутка времени и не перекрывал одни и те же звуки друг с другом.