共享音频文件

新手上路,请多包涵

我正在尝试制作一个用于共享音频文件的按钮。这是行不通的。首先,我尝试直接从我的原始文件夹发送文件,而不是将其复制到手机卡上。那并没有解决我的问题。我尝试的第二件事是将文件保存到手机然后共享。将文件保存到手机的部分现在可以工作,但是当我尝试将音频文件共享到另一台设备时,所有兼容的应用程序都会崩溃(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。

提前致谢!

原文由 Wannabe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 509
2 个回答

好的,发现我做错了什么。对于有同样问题的人,我是这样解决的:

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

这是完整的休息:

     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 否则在运行应用程序时会出现错误。

原文由 Wannabe 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是我的方式。

 Uri uri = Uri.parse("file://" + sharePath);

原文由 Chanh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题