2011-06-21 6 views
3

私はRingtoneManagerを使用してサウンドを再生しています。すべて は、適切なSDディレクトリにサウンドファイル(.mp3)を保存すると問題なく動作します。ファイル内のファイル数:

私はファイルのURIを知り、それを再生するにはRingtoneManagerに渡します。

sd_uri = Uri.parse("/sdcard/media/path/to/file"); 
Ringtone rt = RingtoneManager.getRingtone(getApplicationContext(), sd_uri); 
rt.play(); 

SDカードが付いていないタブレットの場合はどうすればいいですか? 私の考えは、res/rawまたはres/assetsディレクトリにサウンドファイルを保存することですが、リソース識別子を受け入れるMediaPlayerと異なり、RingtoneManagerはUriだけが必要です。 ファイルのUriをres/rawまたはres/assets dirにするにはどうすればよいですか? 理想的にはR.raw.*という識別子を取得するためにres/rawを使用します。これは便利かもしれません。

答えて

0

パスを/sdcardとして使用しないでください。代わりにEnvironment.getExternalStorageDirectory()を使用してください。これにより、sdcardへの依存が取り除かれます。

私のようなURIを使用してアプリケーション のres /資産にあるメディアファイルへの参照てる自分のアプリケーションで
0

:だけで同じアプリケーション内で動作します

private static final String PLACEHOLDER="file:///android_asset/sample_video.3gp"; 
+1

。他のアプリは、自分が公開するカスタムコンテンツプロバイダを作成しない限り、assetsフォルダ内のファイルにアクセスすることはできません。 –

+0

それは絶対に本当です... – barmaley

関連する問題