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

我正在尝试通过whatsapp或任何其他messenger应用程序发送/共享mp3原始文件。

谭俊
2023-03-14
public void share(String song){

    Uri uri = Uri.parse("android.resource://com.dsbsoft.myApp/raw/"+song+".mp3");

    Intent share = new Intent(Intent.ACTION_SEND);
    share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    share.setType("audio/mp3");
    share.putExtra(Intent.EXTRA_STREAM, uri);

    this.startActivity(Intent.createChooser(share, "Send song"));
}

一切都很完美,但在发送文件时,我认为,它不存在。。。在空白处出现了字符串变量song,其中包含文件名。例如:呼叫是:共享(“abc”);我想发送mp3文件(在原始文件夹中)abc。mp3

共有2个答案

吴靖
2023-03-14

试试这个:

public void share(String song){ 


    File audio = new File("android.resource://com.dsbsoft.myApp/raw/+song+ ".mp3");

    Intent share = new Intent(Intent.ACTION_SEND).setType("audio/*");
    share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(audio));
    startActivity(Intent.createChooser(share, "Share song"));

}
贲绪
2023-03-14

显然我们不能直接发送资源文件。这就是我执行以下操作的原因。要发送mp3文件,我将其刻录在存储中的文件夹中并共享这个新文件。

代码:

public void makeOutSide(String song, InputStream ins){
    // Create the directory
    File dir = new File(Environment
            .getExternalStorageDirectory() + "/.CSOUNDS/");
    // If it does not exists, make it.
    if (!dir.exists()) {
        dir.mkdir(); // Generating the directory
    }
    try {
        // Open the resource
        byte[] buffer = new byte[ins.available()];
        ins.read(buffer);
        ins.close();
        // Burn
        String filename = Environment
                .getExternalStorageDirectory().toString()
                + "/.CSOUNDS/"+song+".mp3";
        FileOutputStream fos = new FileOutputStream(filename);
        fos.write(buffer);
        fos.close();
    } catch (Exception e) {  }
}

public void share(String song, InputStream ins){
    makeOutSide(song,ins);
    String rout = Environment.getExternalStorageDirectory().toString()+"/.CSOUNDS/"+song+".mp3";
    Uri uri = Uri.parse(rout);
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("audio/*");
    share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    share.putExtra(Intent.EXTRA_STREAM,uri);
    startActivity(Intent.createChooser(share, "Share song"));
}

在share方法的调用中,会以这种方式出现一个InputStream ins

InputStream ins = getResources().openRawResource(R.raw.abc);
share("abc",ins);
 类似资料:
  • 我想通过WhatsApp共享一个mp3文件,在意图上使用方法。问题是它不起作用。意图工作得非常好,它会打开Whatsapp并允许我选择我想要的任何聊天。所以我选择一个(仍然没有问题)并单击发送,这就是问题开始的地方。 我收到一条弹出消息,指出: 共享不成功,请重试。(翻译自德语)代码: 我真的希望有人能帮我做这件事。

  • 我有一个音频文件的回收视图,该音频文件存储在原始文件夹中。现在,我想与其他应用程序共享我的音频文件。我正在适配器clss中尝试此代码。 但它不起作用。如何解决这个问题。 提前谢谢。

  • 我正在开发一个应用程序,它必须通过whatsapp共享mp3文件。 我现在的代码如下: 例如,我可以通过Gmail成功共享,但通过whatsapp无法实现。这是我的代码的问题还是whatsapp不允许你共享mp3文件? 提前感谢!

  • 我想用SharingContent将声音从原始文件夹共享到另一个应用程序 我使用此代码共享文本和字符串

  • 问题内容: 我已经尝试过在StackOverflow和其他站点上发布的每个脚本/代码/方法,但是都没有运气。我在GoDaddy上托管。我已经设置了一个Google App帐户,设置了MX记录所需的所有内容(为此使用GoDaddy工具),甚至尝试通过GMAIL界面为我的网站发送一些电子邮件,以及通过UNIX上的一个终端发送SMTP机器。一切正常。 但是,当我尝试使用PHP时,事实并非如此!就像GoD

  • 我写了一些代码来分享文件发送到whatsapp。但是,文本文件会被共享,但不会显示它显示的文件没有标题。这是我的密码。我还附上了分享文件后whatsapp屏幕的截图。