Android MediaPlayer вопрос - PullRequest
       13

Android MediaPlayer вопрос

0 голосов
/ 13 января 2011

У меня есть следующий код.Я установил и тревога в HelloAndroid2.java, и через 2 секунды AlarmReceiver.java показывает мне сообщение Toast.Я хотел добавить аудио в приложение, но у меня возникли некоторые проблемы.

HelloAndroid2.java:

public class HelloAndroid2 extends Activity {  


@Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);   

 Intent intent = new Intent(this, AlarmReceiver.class);

 PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
 intent, PendingIntent.FLAG_ONE_SHOT);

 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
 alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (2 * 1000), pendingIntent);
 Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();


}

}

AlarmReceiver.java:

public final class AlarmReceiver extends BroadcastReceiver {
 @Override
 public void onReceive(Context context, Intent intent) {
     Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();

}
}

Q1: Если я помещу этот код в HelloAndroid2.java:

 MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.onlyyou); 
`mp.start();`

Он работает нормально.

Как я могу добавить mp.stop () в AlarmReceiver.java?Он не знает, что такое mp.

Q2: Если я поместил код в файл AlarmReceiver.java, возникла проблема с getBaseContext () (говорит: неопределено для типа AlarmReceiver)

Должен ли я использовать какой-то другой контекст?

Надеюсь, это нормально, что я задал вопросы в одной теме.

1 Ответ

0 голосов
/ 13 января 2011

Вы делаете это неправильно. Вы не должны делать ничего похожего на то, что вы пытаетесь сделать в приемнике вещания. Если вы хотите запустить и остановить аудио, вам нужно сделать это в службе. В приемнике вещания вы должны отправить информацию в службу, чтобы узнать, что делать с медиаплеером.

...