Android поделиться кнопкой аудио из сырого - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть различные аудиофайлы в папке raw в моем проекте Android.Мой код не работает.Когда я нажимаю кнопку «Поделиться», приложение вылетает.

Это мой код:

public void onClick(View v) {
    InputStream inputStream;
    FileOutputStream fileOutputStream;
    try {
        inputStream = getResources().openRawResource(R.raw.numer_1);
        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"));
}

И Android манифест добавить:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

1 Ответ

0 голосов
/ 14 ноября 2018
if you use this your app will not crash again. The problem is at **Environment.getExternalStorageDirectory()**you're missing **.getPath()**

используйте приведенный ниже код в качестве руководства для своих намерений.

final Intent audIntent = new Intent(android.content.Intent.ACTION_SEND);
                                     String audioName="kidi.mp3";
                                     audIntent.setType("audio/mp3");
                                     audIntent.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("file://"+"/Environment.getExternalStorageDirectory().getPath()/"+audioName));
                                     startActivity(Intent.createChooser(audIntent, "Share Audio "));
...