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

共享音频文件

王景山
2023-03-14

我正在尝试制作一个用于共享音频文件的按钮。这不起作用。首先,我试图直接从原始文件夹发送文件,而不将其复制到手机卡上。这并没有解决我的问题。我尝试的第二件事是将文件保存到手机上,然后共享。将文件保存到手机的部分现在可以工作了,但当我尝试将音频文件共享到其他设备时,所有兼容的应用程序(Whatsapp、Gmail等)都崩溃了。

这是我的代码:

    String sharePath = Environment.getExternalStorageDirectory().getPath()
    + "/Soundboard/Ringtones/custom_ringtone.ogg";
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("audio/*");
    share.putExtra(Intent.EXTRA_STREAM, sharePath);
    startActivity(Intent.createChooser(share, "Share Sound File"));

顺便说一下,音频文件是一个。ogg文件。我希望这些应用程序能够处理这种类型的文件。如果不是,我应该把它转换成。mp3。

提前感谢!

共有3个答案

白智
2023-03-14

以下代码适用于我

    SoundFiles soundFiles=.....
    String FullFilePath=soundFiles.getPath();
    Uri uri = Uri.fromFile(new File(FullFilePath));
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("audio/*");
    share.putExtra(Intent.EXTRA_STREAM, uri);
    startActivity(Intent.createChooser(share, "Share Sound File"));
姚棋
2023-03-14

这是我的方式。

Uri uri = Uri.parse("file://" + sharePath);
丁慈
2023-03-14

好吧,找出我做错了什么。对于有相同问题的人,我是这样解决的:

我忘了将字符串解析为uri。这是我必须添加的唯一一行代码<代码>Uri Uri=Uri。解析(sharePath)

以下是完整的Rest:

    String sharePath = Environment.getExternalStorageDirectory().getPath()
            + "/Soundboard/Ringtones/custom_ringtone.ogg";
    Uri uri = Uri.parse(sharePath);
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("audio/*");
    share.putExtra(Intent.EXTRA_STREAM, uri);
    startActivity(Intent.createChooser(share, "Share Sound File"));

另外不要忘记添加权限WRITE_EXTERNAL_STORAGE,否则在运行应用程序时会出现错误。

 类似资料:
  • 例如,当我选择在GMail上分享时,它会说“无法附加空文件”。看起来我没有得到正确的文件路径,所以我基本上没有共享任何内容。我做错了什么? 任何帮助都将不胜感激。

  • 我正在尝试分享音频(.mp3)从第三个应用程序到我的android应用程序。当我接收到音频并获得意图信息(Uri soundUri=(Uri)intent.GetParcelableExtra(intent.Extra_Stream))时,Uri有错误的数据。路径正确,但文件名已用数字(例如5348)重命名,没有扩展名,实际文件名为Audio-6151616.mp3 因此,完整路径是/storag

  • 我正在尝试共享RES/RAW文件夹中的音频文件。到目前为止我所做的是: 例如,当我选择在GMail上分享它时,它会说“无法附加空文件”之类的话。看来我没有得到正确的文件路径,所以我基本上没有共享任何东西。我做错了什么? 任何帮助都将不胜感激。

  • 我想做一个按钮,在电报上共享音频文件。我只对电报有问题(在whatsapp上分享很好)。 我的音频文件在原始文件夹中,我尝试了。mp3。wav和。m4a扩展,但如果我尝试在电报上共享音频,我会收到“不支持的附件”的消息。 这就是我的分享方法:

  • 看来我有bug了。至少我认为这是一个错误。我编写了一种Soundboard并想添加与他人共享声音的功能。我要分享的代码如下: 我的问题是,这是可行的,但只适用于一些应用程序。例如,当我与WhatsApp或DropBox共享音频时,它似乎工作得很好,但当我尝试使用Google Drive或Bluetooth进行相同操作时,似乎出现了一些错误。请注意,音频的文件类型为WAV。我还确保我有权限写入外部存

  • 我正在使用FileProvider API来共享实际存储在内部存储中的内容。 有什么建议我做错了什么吗?