代码之家  ›  专栏  ›  技术社区  ›  Abhilash Maurya

共享音频wav文件

  •  0
  • Abhilash Maurya  · 技术社区  · 7 年前

    我想用android共享音频文件,但没有找到任何有效的解决方案。

    在我的应用程序中,应用程序记录并保存名为audio\u 1的音频文件。wav,然后提供共享选项。因此,它总是以相同的名称共享文件(audio\u 1.wav)。

    还检查了它是否正确创建了文件。 我尝试用以下代码共享音频文件;

    File f = new File(sharePath);
    Uri uri = Uri.parse(f.getAbsolutePath());
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("audio/*");
    share.putExtra(Intent.EXTRA_STREAM, uri);
    startActivity(Intent.createChooser(share, "Share Sound File"));
    

    但在共享和选择它显示的任何应用程序时 无法附加文件

    也为牛轧糖设备使用FileProvider类,但效果不太好。 还选中了多个SO链接:

    Sharing an audio file

    Picking up an audio file android

    1 回复  |  直到 7 年前
        1
  •  3
  •   CommonsWare    7 年前

    关于您拥有的代码:

    • 代替 Uri uri = Uri.parse(f.getAbsolutePath()); 具有 Uri uri = Uri.fromFile(f); ,以获取有效的 Uri

    • 使用 audio/wav audio/* ,对于MIME类型

    您的代码将在Android 7.0+上崩溃 FileUriExposedException 使用 FileProvider 为此,您使用 <external-path> 在元数据XML资源中,并添加 FLAG_GRANT_READ_URI_PERMISSION 向您的 Intent 看见 the documentation 更多信息。