我的问题是,要为通知播放声音,您需要一个易于获取的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个声音并为每个声音定义常数。
答案 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
。