Moin,
ich bin gerade dabei einen Audioplayer zu coden und bin auf einige offene Fragen gestoßen... Habe etwas rumgegoogelt, aber alles was ich gefunden habe, hat mich nicht zufireden gestellt. Die eine oder andere Lösung hätte vielleicht mein Problem gelöst, aber das hilft mir nicht wirklich, wenn ich das nicht nachvollziehen kann.
Ich habe mich dazu entschieden den Audioplayer als Service umzusetzen, da ich einen Soundboard, bzw. background Soundmixer programmieren möchte und denke, dass ich mit einem Service besser darstehe, als mit einer AudioPlayer Activity. Nun habe ich eine Activity erstellt, die den Service zwar aufruft, aber die Dateien werden nicht abgespielt, kann das noch nicht so richtig nachvollziehen warum. Ich zeige euch mal vielleicht den Code und ihr hilft mir das Problem zu lokalisieren
Das ist der Inhalt der onCreate() Methode in meiner Activity. Hier sollte der Service gestartet werden.
Button play = findViewById(R.id.play);
Button pause = findViewById(R.id.pause);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startService(new Intent(new Intent(PlayerClient.this, MediaPlayerService.class)));
}
});
pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopService(new Intent(new Intent(PlayerClient.this, MediaPlayerService.class)));
}
});
Alles anzeigen
Das hier ist der MediaPlayerService
MediaPlayer mediaPlayer;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate(){
System.out.println("started");
mediaPlayer = new MediaPlayer();
mediaPlayer.create(getApplicationContext(), R.raw.song);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
}
@Override
public void onDestroy() {
System.out.println("stopped");
super.onDestroy();
if (mediaPlayer != null) mediaPlayer.release();
}
Alles anzeigen
Die Datei "song.mp3" in res/raw habe ich hinterlegt. Die system.outs erscheinen in der console. Das Service in AndroidManifest.xml ist da. Wo ist also das Problem?