2011-01-12 72 views
0

我目前正在研究一个简单的Android应用程序,现在我正试图让它加载并播放声音。我面临的问题是我想要它使用的声音基于一个字符串(与声音文件名称相同)。其原因是代码简单并添加到代码中。Android根据字符串加载和播放声音

现在很不幸,我不能只用一个字符串来代替引用实际的声音,但是有没有办法让我比较一个字符串与整个原始文件夹以找到匹配的声音,或者是其他一些替代方法手动定义每个声音?

谢谢你的时间。

+0

在手机等都不能挖掘出来,但看context.getresources()方法,我敢肯定有对的方法,那请问您在找什么。创建像“R.raw.filename”这样的字符串,并返回它。 – Emile 2011-01-12 02:42:09

回答

0

为什么你需要这样做?如果这些文件已经存在于原始文件中,并且您只希望将文件的名称命名为strong,那么执行此操作的任何数量的编码可能需要更长的时间,然后只需引用该文件即可,因为参考文件仅为:

R.raw.file_name

代替:

FILE_NAME

那不是多了很多打字,尤其是如果它是一个简单的应用程序。

+0

该应用程序与内核中的音板类似。我想按照我提到的方式来做这件事的原因是会涉及很多很多声音,而不是必须输入许多行来加载它们,我只想根据字符串加载相关声音,已经从应用程序的另一部分存在。 – Chance 2011-01-12 02:45:53

+0

如果这就是你要做的,然后看看到soundpools: http://developer.android.com/reference/android/media/SoundPool.html 这是管理几个不同的声音文件的好方法。但仍然在某个时刻,你将不得不在某个时刻指向该文件。没有办法,我知道要拒绝整个原始文件夹,然后简单地使用文件名作为参考,但指向实际的文件是不是更多的打字。 – Stevy888 2011-01-12 02:54:10

0

尝试使用反射包来检查文件是否存在。

片段

try { 
     Class res = R.raw.class; 
     Field field = res.getField(<yourmediafile>); 
     //If the code reach here, that means media file exists. 
    } catch (Exception e) { 
     //No media file with that name 
    }