web-dev-qa-db-ja.com

Androidにオーディオファイルを保存するためのディレクトリ

ボタンのクリックに基づいてオーディオファイルを再生したい。 onClickListener()メソッドとレイアウトファイルを定義しました。 _res/_ディレクトリにwavファイルを追加すると、次のビルドエラーが発生します。

無効なリソースディレクトリ名temp.wav/hello/res line 1 Android AAPT Problem

私の質問は次のとおりです。
1。オーディオファイルを保存するためにどのディレクトリが必要ですか?現在、それらはres /フォルダーにあります。
2。また、mp.setDataSource("/res/temp.wav")メディアプレーヤーを呼び出す正しい方法は?

33
Sriram

オーディオファイルは、次の名前のフォルダーに移動できます。 raw resフォルダーに作成する必要があります。

次のコードでアクセスできます。

MediaPlayer mPlayer = MediaPlayer.create(context, R.raw.soundclip);
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.start();

これが最も簡単な方法です。あなたはそれを試すことができます..

82

これが役立つことを願っています:

生/

生の形式で保存する任意のファイル。これらのリソースを未加工のInputStreamで開くには、R.raw.filenameというリソースIDでResources.openRawResource()を呼び出します。

ただし、元のファイル名とファイル階層にアクセスする必要がある場合は、res/raw /ではなく、assets /ディレクトリにリソースを保存することを検討してください。 asset /内のファイルにはリソースIDが与えられていないため、AssetManagerを使用してのみ読み取ることができます。

dev guide からです。

[編集:しかし、音楽ファイルをresディレクトリに配置するのは良い考えだとは思いません。これらのファイルの目的は何ですか?]

14
karla

準備には時間がかかることがあるため、ユーザーのアプリとの対話が遅くなる可能性があることに注意してください。開発者ノート here 、特に「非同期準備!」セクションを参照してください。

ファイルのサイズが1MB未満の場合は、SoundPoolも使用できます。これにより、UIスレッドとの同期が処理されます。これは 非常に有用な記事 の使用に関するものです(Larsには素晴らしい記事がたくさんあります!)。

2
james