我开发了一个" 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。
我该如何解决这个问题?
答案 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权限: