2011-01-13 14 views
0

Ich habe den folgenden Code. Ich habe in HelloAndroid2.java einen Alarm eingerichtet und Alarm ausgelöst, und nach 2 Sekunden zeigt AlarmReceiver.java eine Toast-Nachricht an. Ich wollte etwas Audio zur App hinzufügen, aber ich habe einige Probleme.Android MediaPlayer Frage

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: Wenn ich diesen Code in HelloAndroid2.java:

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

Es funktioniert gut.

Wie kann ich einen mp.stop() zum AlarmReceiver.java hinzufügen? Es weiß nicht, was mp ist.

Q2: Wenn ich den Code in der Datei AlarmReceiver.java setzen, gibt es ein Problem mit getBaseContext() (sagt: undefined für den Typ AlarmReceiver)

Sollte ich einen anderen Kontext verwenden?

Ich hoffe es ist okay, dass ich zu Fragen in einem Thema aufgeworfen habe.

Antwort

0

Sie tun dies in die falsche Richtung. Sie sollten nichts tun, was Sie in einem Rundfunkempfänger versuchen. Wenn Sie Audio starten und stoppen möchten, müssen Sie dies in einem Dienst tun. In Ihrem Rundfunkempfänger sollten Sie Informationen an Ihren Dienst senden, um zu wissen, was mit dem Medienplayer zu tun ist.

+0

Vielen Dank! Im AlarmReceiver.java habe ich den Code: context.startService (neue Absicht (Kontext, MyService.class)); Und ich habe eine MyService.java für den Code, den ich hier gefunden: http://developer.android.com/reference/android/app/Service.html – erdomester