Spielen Standard-Klingelton
Ich habe versucht, zu verwenden SoundPool zu spielen, den Standard-Klingelton ohne Erfolg. In den folgenden code
String ringtone = Settings.System.DEFAULT_RINGTONE_URI.getPath();
SoundPool ringPhone = new SoundPool(2, AudioManager.STREAM_RING, 1);
int soundID = ringPhone.load(Settings.System.DEFAULT_RINGTONE_URI.getPath(), 1);
int soundID = ringPhone.load(ringtone, 1);
ringPhone.play(soundID, 0.99f, 0.99f, 1, 0, 1);
Bekomme ich die Meldung "error loading content /system/ringtone sample 0 nicht BEREIT". Ersetzt die URI mit einem harten Pfad zu einer vorhandenen mp3-Datei auf der sd-Karte führt zu ähnlichen Ergebnissen.
Was mache ich falsch? Danke,
kyle
InformationsquelleAutor Kyle Banerjee | 2010-11-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie wahrscheinlich nicht wollen, um mit der SoundPool für diese Art von audio-spielen. SoundPool ist in der Regel verwendet, um sehr kleine Schnipsel von audio -, als lokale Dateien gespeichert, die noch kleiner sind als die meisten Klingeltöne. Sollten Sie überlegen, MediaPlayer statt. Das folgende sollte funktionieren sehr schön:
Obwohl, wenn Sie nicht über die Berechtigung zum Zugang, dass der Klingelton aus Ihrer Anwendung, Sie bekommen konnte eine FileNotFoundException.
Nette Antwort. Nur ein FYI, brauchen Sie nicht zu rufen prepare() im Falle der Verwendung von Factory-Methode create().
Sie sind richtig IronBlossom. Code bearbeitet wurde, zu entfernen, vorzubereiten, ().
Sie sind ein Lebensretter, danke !!!!!
InformationsquelleAutor Dave MacLean