我需要能够在SD卡上存储我的应用程序的声音文件

时间:2011-04-20 15:09:18

标签: android audio sd-card

我已经阅读了很多主题,但似乎都没有涵盖我需要的内容。

我基本上有很多声音文件,我希望能够在SD卡的应用程序中播放它们。

我还希望能够在安装应用程序时首先将它们安装在那里。

我正在使用Eclipse和android SDK,目前我的Target项目是v1.6

有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:1)

好的,所以我找到了答案!

首先,我们需要将外部存储目录放到名为baseDir的变量中。

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();

然后在SD卡上创建目录mysounds

File folder = new File(Environment.getExternalStorageDirectory() + "/mysounds");
boolean success = false;
if(!folder.exists())
{
    success = folder.mkdir();     
}         
if (!success) 
{ 
    // Do something on success
}
else 
{
    // Do something else on failure 
}

然后这段代码会将名称开头的所有声音文件从assets目录复制到你已经创建的mysounds目录。

try {
        AssetManager am = getAssets();
        String[] list = am.list("");
        for (String s:list) {
            if (s.startsWith("sound")) {
                Log.d("Notice", "Copying asset file " + s);
                InputStream inStream = am.open(s);
                int size = inStream.available();
                byte[] buffer = new byte[size];
                inStream.read(buffer);
                inStream.close();
                FileOutputStream fos = new FileOutputStream(baseDir + "/mysounds/" + s);
                fos.write(buffer);
                fos.close();
            }
      }
 }

希望这有助于某人!