如何将 ressources/raw 中的声音存储到内部 SD 卡 [Android]

How to store sound from ressources/raw to the internal sd card [Android]

问题是,在我的应用程序第一次启动时,我从可绘制文件夹中加载了一些图像,然后使用此功能将它们放入我的存储中:

1-我先把它们做成位图

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.autobus);

然后我使用这个函数转换它们

private String saveToInternalSorage(Bitmap bitmapImage, String imagename) throws IOException{
    ContextWrapper cw = new ContextWrapper(getApplicationContext());
     // path to /data/data/yourapp/app_data/imageDir
    File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
    // Create imageDir
    File mypath=new File(directory,imagename);

    FileOutputStream fos = null;
    try {           
        fos = new FileOutputStream(mypath);
   // Use the compress method on the BitMap object to write image to the OutputStream
        bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
    } catch (Exception e) {
          e.printStackTrace();
    } finally {
          fos.close(); 
    } 
    return directory.getAbsolutePath();
}

但现在我需要对声音做同样的事情,我需要将原始部分的声场存储在内部存储器中,以便以后使用它们。

因此,如果有人可以帮助我,那将是他的温柔, PS:我将这些文件的路径存储在我的 SQLite 数据库中。

如果您使用 InputStream 读取,请使用 OutputStream 写入,即 BufferedOutputStream-wrapped FileOutputStream。此外,您的代码效率很低,因为它一次只复制一个字节。我建议创建一个字节数组缓冲区并使用这些相关的 read/write 方法:

int BufferedInputStream.read(byte[] buffer, int offset, int length)void BufferedOutputStream.write(byte[] buffer, int offset, int length)

有关更多详细信息,请使用此 link 它对您有帮助