さらに使用するためにインターネットからサウンドをダウンロードする Android アプリを作成する必要があります。
これらのサウンドはどこに保存すればよいですか? Sqlite はオプションですか? これらのファイルを読み込んで再生する最良の方法は何ですか?
前もって感謝します。
3 に答える
SD カードが存在する場合は、ファイルを SD カードに入れることをお勧めします。ただし、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 データベースはこのアプリにとって過剰なものになる可能性があります。また、ファイルを BLOB としてデータベースに直接保存しない限り、アプリケーションの実行中にユーザーがファイル システムをいじらないという保証もありません。ただし、MP3 などの場合、データベースを使用する代わりに、ID3 タグを介してトラック/アーティスト タイプ情報をファイルに直接保存できます。
ファイルの再生については、オーディオ API に関する Android ドキュメントを参照してください。素晴らしい情報が山ほどありますが、ここで繰り返すことはできません。
それらを保存するのに最適な場所は、SDカードの個々のファイルとして、自分のフォルダーの下にあると思います。File("/sdcard/com.example.myapp/sound12345.mp3");
編集:私のものよりもはるかに完全なphobos51594の回答をご覧ください。
ファイル システムに直接保存することをお勧めします。なぜデータベースに保存したいのですか?一緒に保存する必要がある追加情報はありますか? (タイトル、説明など)?そうでない場合は、ファイルシステムに直接書き込みます。
基本的に、アプリのデータ フォルダーに保存できます (共有設定と sqlite db も保存されます)。ただし、個人的には、/data パーティションで使用可能なメモリが減少するため、これはお勧めできません (Android フォンでは既に小さすぎます)。ほとんどの電話では、データの空き容量が 50 MB 未満です (つまり、一部を SD カードに移動できないアプリ)。
データ パーティションの空き容量を減らしすぎないように、可能な限り SD カードにこのような罰金を常に確保する必要があります。Froyo の A2SD 機能を使用しても、インストールされたアプリのすべてのデータが SD カードに移動されるわけではありません。*.dex ファイル (多くの場合、アプリの合計サイズの 10 ~ 50% の範囲) は、まだ /data パーティションに残っています。このアプリが使用する設定と sqlite データベースも同様です。したがって、A2SD を使用しても、ユーザーがインストールするアプリが増えるほど、スペースは少なくなります。