我计划为一个教堂制作一个应用程序,它几乎是一个相对简单的应用程序,它只是在主xml中有一个菜单,其中包含一个关于部分的联系人和一个剪辑部分。现在,当用户点击剪辑时,他们将被重定向到xml文件,列出前几周服务的所有音频剪辑,然后用户可以点击收听。我只是计划创建一个原始文件夹并将所有剪辑放在该文件夹中,然后通过mediaplayer类使用raw访问音频文件。方法,但这真的是最好的方法吗?我在这里有几个问题。如果我这样做,我将不得不一直修改代码,因为我必须插入最新的剪辑?如果是这样,这样做的更好的方法是什么,所以我不必每周都不得不改变我的代码,因为我计划插入该周服务的最新音频片段?
答案 0 :(得分:1)
将所有剪辑放在assets
文件夹中。
在您的应用中使用以下内容:
AssetManager assets = getAssets();
String[] list = assets.list("");
这将返回assets文件夹中所有文件的列表。在这里,您需要在列表视图中使用该数组,或者处理它以您认为合适的任何方式创建视图。
最简单的方法是使用listView并使用适配器中的数组将文件标题放在列表中。
ListView listView = (ListView) findViewById(R.id.listView);
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(
this,
android.R.layout.simple_spinner_item,
new ArrayList<CharSequence>(Arrays.asList(list)));
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
listView.setAdapter(adapter);
何时使用其中一个文件(可能在ListView.OnItemSelectedListener()
中):
assets.open(fileName);
fileName是一个字符串,其中包含您选择的文件的名称。
此方法不会涉及在更新时更改代码。
如果您的应用超过50mb,则需要使用扩展文件。由于扩展文件的下载和验证,这种方法有点复杂,但它以类似的方式使用。
答案 1 :(得分:0)
当您列出用户可以看到的声音片段时,为什么不通过列出某个文件夹中的所有音乐片段来获取此列表?每当您想要添加声音片段时,您只需将其添加到该文件夹即可。没有对特定声音片段的任何静态引用。
此外,您可能想要开始接受答案,否则人们会停止接听您。我不是说选择我的答案(除非你正在寻找),但你可能想花一点时间来回顾过去的问题。他们中的一些人有一些评价很高的答案。