简体   繁体   English

如何将.mp3文件共享到whatsapp?

[英]How to share a .mp3 File to whatsapp?

I really don't understand how to share a sound to whatsapp. 我真的不明白如何与whatsapp共享声音。

I tried it like this: 我这样尝试过:

btn.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {



Uri uri = Uri.parse("android.resource://"+getPackageName()+"/raw/mySound");
            Intent share = new Intent(Intent.ACTION_SEND);
            share.setType("audio/mp3");
            share.putExtra(Intent.EXTRA_STREAM, uri);
            startActivity(Intent.createChooser(share, "Share Sound File"));



            return true;
        }
    });

Now if I try to click on whatsapp it says: "Share failed, please try again" 现在,如果我尝试单击whatsapp,它会显示:“共享失败,请重试”

What am I doing wrong? 我究竟做错了什么? I'm new to Android 我是Android新手

I also tried this code: 我也尝试了这段代码:

        InputStream inputStream;
        FileOutputStream fileOutputStream;
        try {
            inputStream = getResources().openRawResource(R.raw.testsound);
            fileOutputStream = new FileOutputStream(
                    new File(Environment.getExternalStorageDirectory(), "testsound.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();
            Toast.makeText(getApplicationContext(), "Sharing failed", Toast.LENGTH_LONG).show();

        }

        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.putExtra(Intent.EXTRA_STREAM,
                Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/testsound.mp3" ));
        intent.setType("audio/mp3");
        startActivity(Intent.createChooser(intent, "Share sound"));

I'm getting following error: 我收到以下错误:

06-14 17:18:00.025 7072-7072/com.games.penta.testsharingsound W/System.err: java.io.FileNotFoundException: /storage/58AC-F8FD/gehirnaussetzer.mp3: open failed: EACCES (Permission denied)
06-14 17:18:00.037 7072-7072/com.games.penta.testsharingsound W/System.err:     at libcore.io.IoBridge.open(IoBridge.java:459)
06-14 17:18:00.037 7072-7072/com.games.penta.testsharingsound W/System.err:     at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
06-14 17:18:00.037 7072-7072/com.games.penta.testsharingsound W/System.err:     at java.io.FileOutputStream.<init>(FileOutputStream.java:72)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at com.games.penta.testsharingsound.MainActivity$2.onLongClick(MainActivity.java:55)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at android.view.View.performLongClick(View.java:5306)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at android.widget.TextView.performLongClick(TextView.java:9478)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at android.view.View$CheckForLongPress.run(View.java:21271)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at android.os.Handler.handleCallback(Handler.java:743)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at android.os.Looper.loop(Looper.java:150)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5621)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
06-14 17:18:00.039 7072-7072/com.games.penta.testsharingsound W/System.err:     at libcore.io.Posix.open(Native Method)
06-14 17:18:00.039 7072-7072/com.games.penta.testsharingsound W/System.err:     at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
06-14 17:18:00.039 7072-7072/com.games.penta.testsharingsound W/System.err:     at libcore.io.IoBridge.open(IoBridge.java:445)
06-14 17:18:00.039 7072-7072/com.games.penta.testsharingsound W/System.err:     ... 13 more

I don't know if this is the right uri. 我不知道这是不是正确的uri。

Intent share = new Intent(Intent.ACTION_SEND); share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share Sound File")); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM