当前位置: 首页 > 知识库问答 >
问题:

将音频保存到SD卡

翟理
2023-03-14

我一直在寻找保存音频到SdCard。

File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) + "/AUDIO/");
        boolean success1;
        if (!dir.exists()) {

            MessageSystem("SAVING FOLDER: " + dir + " -- DON'T EXISTS ");

            //CASE NOT -  We create
            success1 = dir.mkdir();


            if (success1) {
                // Do something on success
                MessageSystem("foldersd: " + dir.toString() +  " CREATED!!");


            } else {
                // Do something else on failure
                MessageSystem("foldersd: " + dir.toString() +  " NOT CREATED!!");

            }

        }

我还试图保存以下内容:


        File dir = new File(Environment.getExternalStorageDirectory() + "/AUDIO/");

在这两种情况下,它都起作用,但会保存到内部存储中。从不使用SD卡

我使用getExternalFilesDirs()来创建。但如果用户卸载应用程序,则会丢失文件。

我不想那样。

如何将音频保存在SD卡公用文件夹中或创建新文件夹。

任何时候它都会创建到内部存储中。

有什么解决办法吗???

我尝试了这个,我可以在SD卡中创建一个文档。还有一个空的。现在我想保存一个MediaRecorder音频到它。但我需要这条路。我怎样才能得到它?

Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("application/mpeg");
        intent.putExtra(Intent.EXTRA_TITLE, audio_name);

        // Optionally, specify a URI for the directory that should be opened in
        // the system file picker when your app creates the document.
        intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, pickerInitialUri);

        startActivityForResult(intent, CREATE_FILE);

共有1个答案

黄凌龙
2023-03-14

你可以试试这个,

public static final String DEFAULT_STORAGE_LOCATION = "/sdcard/AudioRecording";

File dir = new File(DEFAULT_STORAGE_LOCATION);

if (!dir.exists()) {
try {
    dir.mkdirs();
} catch (Exception e) {
    Log.e("CallRecorder", "RecordService::makeOutputFile unable to create directory " + dir + ": " + e);
    Toast t = Toast.makeText(getApplicationContext(), "CallRecorder was unable to create the directory " + dir + " to store recordings: " + e, Toast.LENGTH_LONG);
    t.show();
    return null;
}
} else {
if (!dir.canWrite()) {
    Log.e(TAG, "RecordService::makeOutputFile does not have write permission for directory: " + dir);
    Toast t = Toast.makeText(getApplicationContext(), "CallRecorder does not have write permission for the directory directory " + dir + " to store recordings", Toast.LENGTH_LONG);
    t.show();
    return null;
}

您可以通过以下方式查询系统来获取sd卡位置:,

Environment.get外部存储目录();

别忘了添加用户权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 类似资料:
  • 目前,我的(使用的是Stackoverflow,我自己没有完整地编写)代码如下所示: 我得到错误:“打开失败;EACCES(权限被拒绝)”。 我的舱单是这样的:

  • 当我运行progressdialog出现在屏幕上时,它突然停止运行,并发出通知“应用程序停止了,再试一次”,然后我在android manitor上重复了这个错误,当然我首先要做的是:

  • 问题内容: 在过去的几天里,尝试使其正常工作时遇到了麻烦。但是我想要的是我们有一个可以通过网络发送原始数据的应用程序。然后,我读入此二进制数据并将其保存到wav(任何音频)文件中。稍后可以查看压缩。 所以有问题的代码: 也尝试过使用上述声明,但是我得到了例外:。因此,我认为正在发生的事情是因为我的流是原始音频数据,并且没有wave报头,所以抛出异常? 该文件确实可以成功写入,但是它都是静态的,是否

  • 问题内容: 我尝试使用此代码下载图像并将其保存在以下行中: 我在emulator.my应用程序上尝试了此操作,但出现异常,没有权限保存到此路径: 我也添加了这一行: 这是代码: 问题答案:

  • 我正在尝试从麦克风录制,添加一些效果,并将其保存到文件中 我已经从AndroidNDK中包含的本地音频示例开始。我设法添加了一些混响并播放它,但我没有找到任何关于如何完成此操作的示例或帮助。 任何帮助都是受欢迎的。

  • 本文向大家介绍android将Bitmap对象保存到SD卡中的方法,包括了android将Bitmap对象保存到SD卡中的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了android将Bitmap对象保存到SD卡中的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Android程序设计有所帮助。