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

在Android中共享res/raw文件夹中的音频文件

邹宏峻
2023-03-14

我正在尝试共享RES/RAW文件夹中的音频文件。到目前为止我所做的是:

Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.sound); //parse path to uri
Intent share = new Intent(Intent.ACTION_SEND); //share intent
share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share sound to"));

例如,当我选择在GMail上分享它时,它会说“无法附加空文件”之类的话。看来我没有得到正确的文件路径,所以我基本上没有共享任何东西。我做错了什么?

任何帮助都将不胜感激。

共有1个答案

戚明朗
2023-03-14

将音频文件从资源复制到外部存储,然后共享:

InputStream inputStream;
FileOutputStream fileOutputStream;
try {
    inputStream = getResources().openRawResource(R.raw.sound);
    fileOutputStream = new FileOutputStream(
            new File(Environment.getExternalStorageDirectory(), "sound.mp3"));

    byte[] buffer = new byte[1024];
    int length;
    while ((length = inputStream.read(buffer)) > 0) {
        fileOutputStream.write(buffer, 0, length);
    }

    inputStream.close();
    fileOutputStream.close();
} catch (IOException e) {
    e.printStackTrace();
}

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM,
        Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/sound.mp3" ));
intent.setType("audio/*");
startActivity(Intent.createChooser(intent, "Share sound"));

向AndroidManifest.xml文件添加write_external_storage权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 类似资料:
  • 我正在尝试制作一个用于共享音频文件的按钮。这不起作用。首先,我试图直接从原始文件夹发送文件,而不将其复制到手机卡上。这并没有解决我的问题。我尝试的第二件事是将文件保存到手机上,然后共享。将文件保存到手机的部分现在可以工作了,但当我尝试将音频文件共享到其他设备时,所有兼容的应用程序(Whatsapp、Gmail等)都崩溃了。 这是我的代码: 顺便说一下,音频文件是一个。ogg文件。我希望这些应用程序

  • 我正在尝试做一个应用程序,共享的孩子是在应用程序的“原始”文件夹,但我没有得到它。该文件是共享的,但没有.mp3扩展名。我无法收听Windows Media Player,但我手动放了一个.mp3扩展名。有没有人知道我是怎么做到的。mp3扩展自动?将URI转换/重命名为mp3文件。 歌曲的名字是在文件中注册的,我相信,如果有可能重命名添加.mp3在最后可能会起作用。但我不能重命名。 我正在使用以下

  • 我正在用Android(API 29)编写一个铃声应用程序,我想通过WhatsApp分享以MP3格式存储在文件夹中的声音。我正在使用此代码: 但是每次我选择聊天发送音频文件时,我都会收到WhatsApp错误,告诉我无法共享文件。我见过其他应用程序在不请求外部存储写入权限的情况下实现我想要的功能。有什么线索吗?

  • 我尝试从res/raw文件夹播放音频文件,这是我用来播放文件的代码,这不会产生任何错误,并且我的设备音量最大,但没有任何声音。我尝试了MP3和WAV文件。 启动后我在 LogCat 上收到以下消息 帮助我解决这个问题,将不胜感激。

  • 我正在使用录音应用程序,其中音频被录制并存储在应用程序中,该路径存储在SQLITE中。 我需要那个音频文件在whatsapp/gmail中共享或保存在手机的内部目录中。 我试图使用Intent分享它们,但在whatsapp中,它显示了不受支持的格式。 我试过这个密码 我也搜索了一下,我知道在共享之前,音频文件必须先存储在内部目录中。所以我尝试了输入-输出流方法,它不起作用。 有人能帮我分享这个音频