簡體   English   中英

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

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

我真的不明白如何與whatsapp共享聲音。

我這樣嘗試過:

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;
        }
    });

現在,如果我嘗試單擊whatsapp,它會顯示:“共享失敗,請重試”

我究竟做錯了什么? 我是Android新手

我也嘗試了這段代碼:

        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"));

我收到以下錯誤:

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

我不知道這是不是正確的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