Frage


Ich brauche einen Android-App zu schreiben, die Klänge aus dem Internet zur weiteren Verwendung herunterladen würde.
Wo soll ich diese Geräusche gespeichert werden? Ist Sqlite eine Option? Und was ist der beste Weg, um Last und diese Dateien abspielen?
Vielen Dank im Voraus.

War es hilfreich?

Lösung

Ich würde empfehlen, die Dateien auf der SD-Karte setzen, falls vorhanden. Eine Sache zu beachten ist allerdings, dass Sie sollten nie hart Code einen Pfad auf die SD-Karte. Sie würden wahrscheinlich wollen etwas entlang der Linien von dem tun:

try {
        //Create handle to SD card drectory
        exportDirectory = new File(Environment.getExternalStorageDirectory() + "/MyDir");

        //Verify export path exists.  Create otherwise.
        if (exportDirectory.exists() == false) {
            if (exportDirectory.mkdirs() == false) {

                //Directory structure could not be created.
                //Message the user here
                return false;
            }
        }

        //Create handle to SD card file.
        exportFile = new File(exportDirectory.getAbsolutePath() + "/whatever.mp3");

        //Do whatever here

} catch(Exception e) {
        //Exception.  Message user and bail
        return false;
}

Von dort aus ist es einfach eine Frage der Übertragung von Daten, was Sie in die Datei mögen. Eine SQLite-Datenbank wäre wahrscheinlich für diese App Overkill, es sei denn, Sie speichern eine Menge zusätzlicher Informationen planen. Es gibt auch keine Garantie, es sei denn, Sie die Dateien direkt in die Datenbank als BLOBs speichern, dass der Benutzer nicht verwirren mit dem Dateisystem zwischen Anwendung ausgeführt wird. Obwohl im Fall von MP3-Dateien und dergleichen, Titel / Künstler Typinformationen können über ID3-Tags anstelle der Verwendung einer Datenbank.

direkt in die Datei gespeichert werden

Wie für die Dateien wieder zu spielen, finden Sie in der Android-Dokumentation auf ihre Audio-APIs. Es gibt eine Tonne von großen Informationen da draußen, auf jeden Fall mehr, als ich hier wiederholen kann.

Andere Tipps

Ich würde sagen, der beste Ort, um sie zu speichern ist als einzelne Dateien auf der SD-Karte unter Ihrem eigenen Ordner heißt File("/sdcard/com.example.myapp/sound12345.mp3");


EDIT: bitte phobos51594 Antwort die viel mehr ist abgeschlossen als meine.

Es ist am besten, sie direkt auf dem Dateisystem zu speichern. Warum würden Sie es in einer Datenbank speichern? gibt es zusätzliche Informationen, die Sie mit ihm zusammen lagern müssen? (Wie Titel, Beschreibungen usw.)? Wenn nicht, würde ich es direkt in das Dateisystem schreiben.

Im Prinzip könnte man es in den Datenordner Ihrer App speichern (wo die gemeinsamen Vorlieben und sqlite db gespeichert sind, auch). Aber ich persönlich denke, dies sollte abgeraten werden, da sie die verfügbare memonry auf der / Datenpartition (die bereits auf Android-Handys tooo klein ist reduziert Die meisten Handys haben weniger als 50 MB auf Daten frei (dies bedeutet:. Weniger als 50 MB für Anwendungen, die auf SD-Karte verschoben können nicht teilweise werden).

Sie sollten immer sicher solche Strafen auf SD-Karte, wenn möglich, so dass Sie viel freien Speicherplatz auf Datenpartition nicht senken. Auch bei Froyo der A2SD Funktion, die nicht alle Daten eines installierten App auf die SD-Karte verschoben. Die * .dex-Dateien (die zwischen 10-50% der Gesamtgröße einer App oft reicht) bleibt nach wie vor auf / Datenpartition. Das Gleiche gilt für die Einstellungen und SQLite-Datenbanken dieser Apps verwendet. So auch bei A2SD wird der Raum immer weniger desto mehr apps Der Benutzer installiert

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top