2012-04-21 2 views
1

У меня возникли проблемы с использованием android MediaPlayer в классе non-activity, всегда в контексте. Вот прослушивают линия:Использование медиаплеера в обычном классе

MediaPlayer Shoot = MediaPlayer.create(this, R.raw.shot); 

Теперь я знаю, что я не могу использовать this в службе, но все другие вещи я пытался продолжали давать ошибки.

любые предложения?

+0

Ну технически вы можете использовать 'this' в' 'обслуживания, как она распространяется' context'. Пробовали ли вы 'getApplicationContext()' вместо 'this'? – Squonk

+0

Поскольку мой класс уже расширяет поток, это невозможно. Я также пытался использовать getApplicationContext через объект Activity, но он тоже не удался. – dorbt12

+0

Сделайте подкласс приложения, назовите его MyApplication или что-то еще, поместите его в свой манифест. Тогда вы можете получить контекст в любом месте, вызывая 'MyApplication.getApplicatonContext()' – lenik

ответ

0

Try:

try { 
    MediaPlayer mp = new MediaPlayer(); 

    AssetFileDescriptor afd = getResources().openRawResourceFd(1); 
    if (afd != null) { 
     mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 
     afd.close(); 
     mp.prepare(); 
     mp.start(); 
    } 
} catch (IllegalArgumentException e) { 
} catch (IllegalStateException e) { 
} catch (IOException e) { 
} 
Смежные вопросы