Uri资产中的文件

时间:2011-06-21 22:11:15

标签: android

我正在使用RingtoneManager播放声音。一切 当我将声音文件(.mp3)存储在适当的SD目录中时,工作正常。

我找到了该文件的URI,并将其提供给RingtoneManager来播放。

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

想知道如果平板电脑没有附带SD卡,该怎么做。 我的想法是将声音文件存储在res/rawres/assets dirs中,但与接受资源标识符的MediaPlayer不同,RingtoneManager只需要Uri。 如何在res/rawres/assets目录中获取文件的Uri? 理想情况下,我会使用res/raw来获取R.raw.*标识符,这可能很方便。

2 个答案:

答案 0 :(得分:0)

请勿将路径硬编码为/sdcard而是使用Environment.getExternalStorageDirectory()。这将删除对SD卡的依赖。

答案 1 :(得分:0)

在我的应用程序中,我使用URI来引用应用程序 res / asset 定位的媒体文件:

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