我想获取声音文件的持续时间,并在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();
soundFolder
是String
,其中包含资源文件夹中子文件夹的名称,其中包含所有声音文件。
soundArray
是一个String
数组,其中包含soundFolder
内每个声音的名称(例如" sound04.wav")。
显然MediaPlayer
无法初始化,因为URI有问题。我找不到任何其他方式来访问资产文件夹,并且不了解URI。这个错误在哪里?
答案 0 :(得分:0)
符号“file:/// android_asset / ....”仅由WebView理解。应用必须使用资产管理器为资产中的文件打开输入流并从中读取。如果无法使用该流初始化MediaPlayer,则应使用内容提供程序或将文件复制到外部存储器。