Android-Spieler Anhebung Ausnahme vorbereiten fehlgeschlagen:status 0x1
Ich versuche zu spielen die audio-Datei aus dem res/raw-Ordner.
aber immer die Fehler
vorbereiten Fehler: status = 0x1
Mein code:
package com.example.lvm;
import java.io.IOException;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Button introAudio;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
introAudio=(Button)findViewById(R.id.introAudio);
introAudio.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
MediaPlayer mp = new MediaPlayer();
String name = "greeting";
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
try {
mp.setDataSource("android.resource://com.example.lvm/raw/"+name);
mp.prepare();
mp.start();
} catch (Exception e) {
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
@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_main, menu);
return true;
}
}
Ich habe das gleiche problem. Aber in meinem Fall lade ich die Datei und speichern Sie es. Datei vorhanden ist, kurz bevor ich anrufen vorbereiten, alle anderen Ströme sind geschlossen. Wenn ich den Anruf vorbereiten, einige Zeit später ist es nicht eine exception werfen. Weiß nicht, was das problem aber nicht finden, Lösung noch nicht. Mit dem Namen ist nur guid
Wie gewohnt, sobald ich teilte meinem Kommentar habe ich eine Lösung gefunden. Zunächst habe ich geprüft, die Protokolle in DDMS, um zu sehen, zusätzliche Informationen über den Fehler. Ich fand, dass der Fehler Recht vor Ausnahme
Wie gewohnt, sobald ich teilte meinem Kommentar habe ich eine Lösung gefunden. Zunächst habe ich geprüft, die Protokolle in DDMS, um zu sehen, zusätzliche Informationen über den Fehler. Ich fand, dass der Fehler Recht vor Ausnahme
Failed to open file 'audio/2f32a5de.mp4'. (No such file or directory)
. Danach habe ich festgestellt, dass in einem bestimmten Fall ich nicht erstellen, vollständiger Pfad richtig 🙂
InformationsquelleAutor dsharew | 2013-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
auftreten, weil entweder die Datei Pfad ist in Fehler oder fehlerhafte Verzeichnis oder die Url oder Uri gefunden.
Versuchen Sie Folgendes in Ihren code.
Statt
was ist das format der Datei, die Sie spielen wollen?
mp3-oder wav-ich habe versucht, beide
stellen Sie sicher, dass die Datei nicht beschädigt ist, bitte versuchen Sie es mit einer anderen Datei. Ich sehe kein problem jetzt.
vielen Dank für ur Anregung, ich hatte zu ändern mein code , aber ur Anregung für mich gearbeitet 🙂
InformationsquelleAutor Ritesh Gune
Prüfen Sie zunächst die Namen Ihrer Datei. Es nicht enthält Großbuchstaben und Sonderzeichen. Entfernen Sie die Datei, ändern Sie Namen und kopieren Sie die Umgebung wieder. Verwenden Sie dann in Eclipse
Project => Clean
Funktion (R.java sollte regeneriert werden). Sie können auch versuchen, zu verwendenmp.setDataSource("android.resource://com.example.lvm/raw/"+name);
stattmediaplayer.setDataSrouce(MainActivity.this, Uri.parse("android.resource://com.example.lvm/raw/"+name));
denken Sie Daran, dass nicht hinzufügen, eine Erweiterung zu nennen, zB.R.raw.your_raw_file
ich doesnt Arbeit für mich
InformationsquelleAutor TN888
Scheint es erstellen 31 vorbereitet
MediaPlayer
ist das maximum. Wenn Sie versuchen, um die 32stel und aufgerufenprepare
wird mit diesem Fehler fehlschlagen.Wenn dies der Fall ist, wie man dieses Problem beheben:
release
auf nutzlosMediaPlayer
;MediaPlayer
Sie erstellen können. Zum Beispiel, wenn Sie mit einer Warteschlange, versuchenArrayBlockingQueue<T>
.IOException e
überprüfen"Prepare failed.: status=0x1".equals(e.getMessage())
wenn ja wiederholen.Naja ich meinte 32nd. 😛
InformationsquelleAutor Mygod