Java 在Android studio上共享音频
不要在whatapp上的my app(在raw/suono.mp3中)中共享mp3音频Java 在Android studio上共享音频,java,android,android-studio,Java,Android,Android Studio,不要在whatapp上的my app(在raw/suono.mp3中)中共享mp3音频 final Button pulsante2 =(Button) findViewById(R.id.pulsante2); pulsante2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { suono2=Me
final Button pulsante2 =(Button) findViewById(R.id.pulsante2);
pulsante2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
suono2=MediaPlayer.create(getApplicationContext(),R.raw.suono2);
suono2.start();
}
});
//tasto premuto piu a lungo
pulsante2.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/*");
Uri uri = Uri.parse("android.resource://" + getPackageName()
+ "/raw/" + R.raw.suono2);
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share Sound File"));
return true;
}
});
什么应用程序说我无法加载文件请重新加载少数应用程序可以处理android.resource方案。将音频内容复制到文件中,然后使用
FileProvider
通过Uri
使其可用。如何添加文件提供程序?需要使用FileProvider
为最初来自资产的PDF文件提供服务的代码。您将切换代码以提供原始资源中的音频内容。不明白:(尝试此操作,但当发送到哪个应用程序时,显示condivision失败,请重新加载。)
InputStream inputStream;
FileOutputStream fileOutputStream;
try {
inputStream = getResources().openRawResource(R.raw.suono2);
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();
}