URI到资源的子文件夹不起作用

时间:2014-07-09 18:11:42

标签: android media-player uri

我想获取声音文件的持续时间,并在Stack Overflow上找到一个解决方案,它需要特定声音的URI。我尝试了以下方法:

String path = "file:///android_asset/" + soundFolder + "/" + soundArray[currentSound];
// cutting off ".wav" extension:
path = path.substring(0, path.length() - 4);
MediaPlayer mp = MediaPlayer.create(this, Uri.parse(path));
int duration = mp.getDuration();
mp.release();

soundFolderString,其中包含资源文件夹中子文件夹的名称,其中包含所有声音文件。

soundArray是一个String数组,其中包含soundFolder内每个声音的名称(例如" sound04.wav")。

显然MediaPlayer无法初始化,因为URI有问题。我找不到任何其他方式来访问资产文件夹,并且不了解URI。这个错误在哪里?

1 个答案:

答案 0 :(得分:0)

符号“file:/// android_asset / ....”仅由WebView理解。应用必须使用资产管理器为资产中的文件打开输入流并从中读取。如果无法使用该流初始化MediaPlayer,则应使用内容提供程序或将文件复制到外部存储器。