如何在Android(2016)中分享音频到社交网络(Whatsapp,Facebook)?

时间:2016-11-24 04:57:23

标签: android facebook audio whatsapp sharing

我开发了一个" app"这是一个来自我国音板的颇受欢迎的人物。它非常简单,它有6个主要按钮播放不同的声音,然后每个声音有其他2个按钮,一个用于通过社交网络共享声音,另一个用于将声音设置为铃声,警报或通知。起初,一切都运行正常,但有一天,突然间,它停止了共享功能(其他功能仍然有效)。

出现的消息是"格式不兼容"对于我试图分享的每一个社交网络(或类似的东西,它用西班牙语)。您可以按照此链接download the app here

下载该应用

共享的最后发布代码如下:

            private void shareItAYQueNoEntren() {
                    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
                    sharingIntent.setType("audio/mpeg3");
                    Uri path = Uri.parse("android.resource://fzmobile.elgordodecentral/raw/" + R.raw.yquenoentren);
                    sharingIntent.putExtra(Intent.EXTRA_STREAM, path);
                    startActivity(Intent.createChooser(sharingIntent, "Share by..."));
                }

原始文件夹中音频文件的扩展名为.mp3。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

试试这个:

String sharePath = Environment.getExternalStorageDirectory().getPath()
        + "your audio file path here";
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权限,否则在运行应用程序时会出错。

答案 1 :(得分:0)

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

 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权限: