質問


さらに使用するためにインターネットからサウンドをダウンロードするAndroidアプリを作成する必要があります。
これらのサウンドはどこに保存すればよいですか? sqliteはオプションですか?そして、これらのファイルをロードして再生するための最良の方法は何ですか?
前もって感謝します。

役に立ちましたか?

解決

存在する場合は、SDカードにファイルを置くことをお勧めします。ただし、注意すべきことの1つは、SDカードへのパスをハードコーディングしないでください。あなたはおそらく次の線に沿って何かをしたいと思うでしょう:

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;
}

そこから、必要なデータをファイルに転送するという簡単な問題です。多くの追加情報を保存する予定がない限り、このアプリのSQLiteデータベースは過剰になる可能性があります。また、ファイルをBLOBSとしてデータベースに直接保存しない限り、ユーザーがアプリケーションの実行間でファイルシステムを台無しにしないという保証もありません。ただし、MP3などの場合、トラック /アーティストタイプ情報は、データベースを使用する代わりにID3タグを介してファイルに直接保存できます。

ファイルを再生することについては、オーディオAPIのAndroidドキュメントを参照してください。そこにはたくさんの素晴らしい情報がありますが、ここで繰り返すことができる以上のものがあります。

他のヒント

それらを保存するのに最適な場所は、あなた自身のフォルダーの下にあるSDCardの個々のファイルとして、つまり File("/sdcard/com.example.myapp/sound12345.mp3");


編集:参照してください Phobos51594の答え これは私のものよりもはるかに完全です。

ファイルシステムに直接保存するのが最善です。なぜデータベースに保存したいのですか?一緒に保存する必要がある追加情報はありますか? (タイトル、説明など)?そうでない場合は、ファイルシステムに直接書き込みます。

基本的に、アプリのデータフォルダー(共有設定が共有され、SQLite DBも保存されている)に保存できます。ただし、 /データパーティションで利用可能なメモリーを削減するため、私は個人的には落胆すべきだと思います(Android電話ではすでに小さいです。ほとんどの携帯電話はデータで50 MB未満です(これは50 MB未満:の場合は50 MB未満SDカードに部分的に移動できないアプリ)。

可能であれば、SDカードでそのような罰金を常に安全に保護する必要があるため、データパーティションの自由スペースを削減しすぎないでください。 FroyoのA2SD機能を使用しても、インストールされているアプリのすべてのデータがSDカードに移動されるわけではありません。 *.dexファイル(多くの場合、アプリの合計サイズの10〜50%の範囲)は、データパーティションにまだ残っています。このアプリが使用する設定とSQLiteデータベースも同様です。したがって、A2SDを使用しても、ユーザーがインストールするアプリが多いほどスペースがますます少なくなります

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top