Richtig freigeben, Android MediaPlayer
Ich versuche eine Schaltfläche hinzu, die meine android-app, wo es spielt eine MP3, wenn der button angetippt wird.
Ich habe es zu arbeiten, aber ohne eine Möglichkeit zur Freigabe des mediaPlayer-Objekts - daher ist es weiterläuft, selbst nachdem ich verlasse die Aktivität. Wenn ich initialisieren Sie die MediaPlayer-Objekt außerhalb meiner reagieren () - Methode, welche aufgerufen wird, wenn die Taste gedrückt wird) es bewirkt, dass die app zu zwingen, zu schließen, wenn die Aktivität wird geöffnet. Aber wenn ich initialisieren der MediaPlayer innerhalb der reagieren () - Methode, die ich dann nicht verwenden kann mplayer.Freisetzung in die onQuit () - Methode. Was bin ich nicht hier sehen?
public void react(View view) {
MediaPlayer mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);
mediaPlayer.start();
}
protected void onStop(){
mediaPlayer.release();
mediaPlayer = null;
}
Funktioniert nicht für offensichtlichen Gründen und
MediaPlayer mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);
public void react(View view) {
mediaPlayer.start();
}
protected void onStop(){
mediaPlayer.release();
mediaPlayer = null;
}
Bewirkt, dass es zu force close.
Update:
Hier ist die ganze java-Klasse.
public class ToBeOrNot extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_be_or_not);
}
MediaPlayer mediaPlayer;
public void react(View view) {
mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);
mediaPlayer.start();
}
protected void onStop(){
mediaPlayer.release();
mediaPlayer = null;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.activity_to_be_or_not, menu);
//Locate MenuItem with ShareActionProvider
return true;
}
}
Ich denke, was es tut, ist relativ selbsterklärend. Wenn Sie aufgerufen wird, zeigt es text und eine Taste, wenn angetippt, startet eine Aufnahme zu spielen. Wenn jemand trifft die zurück-Taste, es sollte gehen Sie zurück zu der vorherigen Aktivität und stoppen Sie die Aufnahme.
Vielen Dank für die Hilfe!
Okay, ich wollte einfach nicht zu viele Fragen.
Hier ist die neue Frage. stackoverflow.com/questions/15046888/... Wenn Sie Lust haben, beantworten das wäre toll, danke. Oder könnte jemand anderes, oder ich vielleicht die Antwort selbst.
InformationsquelleAutor dacelbot | 2013-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann nicht initialisiert werden die mediaplayer-Objekt außerhalb aller Methoden. Wenn Sie das tun, versucht wird, einen Zusammenhang, die noch nicht erstellt wurden. Müssen Sie deklarieren es als class-variable(außerhalb der Methode), und initialisieren Sie es im inneren zu:
Darüber hinaus würde ich empfehlen, Lesen Sie auf Geltungsbereich von Variablen in Java.
Also ich kopierte Ihr Vorbild und jetzt läuft es einwandfrei, aber wenn ich drücken Sie die zurück-Taste nach dem drücken der Taste beginnt der Klang, die app Kraft schließt. Irgendwelche Gedanken?
Es gibt eine Menge potenzieller Probleme mit ihm. Ich würde empfehlen, zu einer anderen Frage, zu erklären, was Sie tun, in allen lifecycle Methoden(create, resume, pause, stop, etc). Erkläre auch, was genau Sie wollen, es zu tun.
InformationsquelleAutor Geobits
Dieser Arbeitete für mich auch.
InformationsquelleAutor Sankha Rathnayake