问题描述
|
我正在使用
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\";