资产文件的Uri

问题描述

| 我正在使用
ringtoneManager
播放声音。一切 当我在适当的SD目录中存储声音文件(.mp3)时,工作正常。 我找到文件的URI,然后将其赋予
ringtoneManager
进行播放。
sd_uri = Uri.parse( \"/sdcard/media/path/to/file\" );
ringtone rt = ringtoneManager.getringtone( getApplicationContext(),sd_uri );
rt.play();
只是想知道如果没有SD卡的平板电脑该怎么办。 我的想法是将声音文件存储在“ 3”或“ 4”目录中,但是与“ 5”接受资源标识符不同,“ 0”只需要Uri。 如何获取
res/raw
res/assets
目录中的文件Uri? 理想情况下,我将使用
res/raw
获取
R.raw.*
标识符,这可能很方便。     

解决方法

        不要硬编码路径,因为
/sdcard
改用
Environment.getExternalStorageDirectory()
。这将消除对sdcard的依赖。     ,        在我的应用程序中,我使用URI引用应用程序资源/资产所在的媒体文件,例如:
private static final String PLACEHOLDER=\"file:///android_asset/sample_video.3gp\";