在我的应用程序中,我想录制一段2秒长的声音并将其播放回用户。到目前为止,我发现的所有示例都要求播放的音频数据来自文件或URL。
MediaPlayer和SoundPool类都只接受文件,文件描述符,资源ID或URL作为输入,而不仅仅是字节数组。
由于人们只能将文件写入SD卡而不是内部存储器(这样吗?),应用程序需要安装和写入SD卡。但是如果没有SD卡,我的应用程序也可以正常工作。
有没有办法实现这个目标? 感谢
答案 0 :(得分:3)
是的,应用程序可以写入内部存储(安装它的位置)。每个已安装的应用程序都提供了一个Data文件夹来写入其内部文件。还提供了缓存存储。
Context
的这些方法可以为您提供以下目录:
getCacheDir()
:返回文件系统上特定于应用程序的缓存目录的绝对路径(注意:如果存储空间不足,系统可能会删除缓存)
getDir(String name, int mode)
:检索,创建一个新目录,如果需要,应用程序可以在其中放置自己的自定义数据文件。
还有一种外部存储方法:getExternalCacheDir()
但不可靠,因为外部存储可能并不总是存在。
此外,如果您只需要在App的内部数据目录中编写文件,则有一种非常简单的方法:
答案 1 :(得分:0)
你可以使用 'getApplicationContext()。getFilesDir()。getAbsolutePath()' 获取安装应用程序的目录的路径。 一个限制是,'getFilesDir()'为您提供了文件系统上目录的路径,其中存储了使用openFileOutput(String,int)创建的文件。