为原始目录

时间:2016-01-01 18:41:48

标签: android audio soundpool

我的问题是,要为通知播放声音,您需要一个易于获取的URI。我有153个文件被加载,所以我使用增强的for循环加载每个文件而不是单独进行。我就这样做了:

SoundPool pool = getSoundPool();
File raw = context.getDir("raw", Context.MODE_PRIVATE);
for(File file : raw.listFiles()){
    pool.load(file.getPath(), 0);
}

顺便说一句,我还没有测试过这个。如果是错的,请纠正我。

回到主题,URI需要每个.playSound调用的R.raw.name事物。将每个声音存储为文件后,我不会为每个声音保持常量。

我的问题:是否有一种简单的方法可以为目录中的随机文件生成int常量,然后我可以使用它来生成URI?我不想通过所有153个声音并为每个声音定义常数。

1 个答案:

答案 0 :(得分:0)

将原始文件夹中的所有文件的名称保留为以整数为后缀的常见文件。假设您选择的名称为rawname

你的文件名是rawname1,rawname2,rawname2 ......

然后编写一个循环并使用循环索引并使用以下命令获取资源:

for(int i=1; i<=153; i++) {
    int drawableResourceId = this.getResources().getIdentifier("rawname" + Integer.toString(i), "raw", this.getPackageName());
}

然后,您可以使用drawableResourceId来放置R.raw.name

相关问题