2017-02-15 4 views
0

生のフォルダで必要なオーディオファイルを取得する必要があります。アプリケーションでサウンドプールを使用してオーディオを再生しています。android raw folderにあるメディアファイルの正確なパスは?

リソース名を取得するには、getAssets()。openFd(string)に正確なファイル名を渡す必要があります。

たとえば、music1.mp3の正確なファイルパスは何ですか?

+0

SoundPoolは、リソース識別子だけを使用してロードできます(パスは必要ありません)。他に何かの道が必要ですか? – Krylez

+0

はい、あなたは正しいです。しかし、私の場合は動的です。私はコード内に静的な値を渡すことはできません。ユーザーの入力に基づいて、私は必要な識別子を渡す必要があります。だから私はこれを動的に取得する必要がありますか?さらにもう1つのことは、これらのオーディオファイルを将来追加で追加することができることです。 –

+0

静的リソースを動的に取得するのはなぜですか?未処理リソースはビルド時に決定され、後で追加/削除することはできません。ユーザーフレンドリーなラベル文字列を作成して、生のリソースファイルにマップするだけでいいですか? – Krylez

答えて

1

あなたは3つの別々のものconflatingされています。ファイルシステムに

  • 資産
  • 生資源
  • ファイルをこれらの

どれも同じものではありません。特に、資産や未処理リソースは、Androidデバイス上のファイルシステム上のファイルではありません。

パラメータとしてassets/内の相対パスで、getAssets().open()(またはopenFd())を使用し、あなたのプロジェクトのassets/に置くファイルにアクセスします。

生のリソースにアクセスするには、リソースのリソースID(例:R.raw.music1)を使用して、getResources().openRawResource()(またはopenRawResourceFd())を使用します。

+0

diff b/wの資産とリソースの明確なアイデアをお寄せいただきありがとうございます。私のアプリケーションでは、生のフォルダにファイルがあります。そして、私はリソースIDを取得するために名前に基づいて動的にフェッチされる名前だけにアクセスしようとしています。サウンドプールにはリソースIDが必要です。あなたはこれを明確にしていただけますか? –

関連する問題