在Android项目中,我有数千种高度动态的音频文件,采用多种语言。高度动态,因为它们在开发过程中可能每周都会发生变化。 有些文件是重复的(在一种语言中),并且必须是为了不破坏代码中的逻辑和维护 - 但这是浪费空间!
示例(只是一个例子,不要担心语义):
raw/en/time_rep.mp3 - used as in "one more time"
raw/en/time.mp3 - used as in "it is now time for"
raw/de/time_rep.mp3 - may be translated to "mal"
raw/de/time.mp3 - may be translated to "zeit"
所以,这个词在英语中是相同的,因此是重复的,但不是德语,因此,我们需要两个资源。
理想情况下,R.raw.time_rep和R.raw.time在英语中都会引用相同的time.mp3音频文件,但不是德语。
对于字符串和图像,可以创建AliasResource,但不能创建原始文件。
关于如何创建"软链接的任何想法"为了避免重复拥有原始资源,我仍然可以从代码中引用R.raw.time_rep和R.raw.time,每当我获得一批新的更新的原始音频文件时几乎不需要手动更改?
注意:不要担心识别重复项。我可以在转换和后处理音频文件时在批处理脚本中执行此操作。
答案 0 :(得分:3)
关于如何创建“软链接”以避免重复拥有原始资源的任何想法,以便我仍然可以从代码中引用R.raw.time_rep和R.raw.time,几乎不需要手动更改我得到了一批新的原始音频文件?
只需创建查找表(以您喜欢的任何形式:HashMap,数据库表等),然后使用它来选择正确的音频文件,而不是像现在一样直接选择它。