繁体   English   中英

如何在 android 中分享视频?

[英]how to share video in android?

我正在尝试从 recyclerview 共享视频或图像,因为我尝试使用 bitmap 共享图像,图像共享但是当我尝试共享视频时它不共享。 为什么?

这是分享视频的正确方式吗? 如果不告诉我解决方案,请。我在这里被困了大约一个星期:(

代码:

ModalClass m = fileslist.get(position);
            String image_uri = fileslist.get(position).getUri().toString();
            if (!m.getUri().toString().endsWith(".mp4")) {

                Bitmap bitmap = null;
                try {
                    bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), Uri.parse(image_uri));
                    Log.d("pathss",""+bitmap);

                } catch (IOException e) {
                    e.printStackTrace();
                }
    Uri uri = null;
                try {
                    File imagePath = new File(context.getCacheDir(), "images");
                    Log.d("pathss",""+imagePath);
                    imagePath.mkdirs();
                    File file = new File(imagePath, "shared.jpg");
                    FileOutputStream outputStream = new FileOutputStream(file);
                    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
                    outputStream.flush();
                    outputStream.close();
                    uri = FileProvider.getUriForFile(context, "com.xyz.fileprovider", file);
                    Log.d("pathss",""+uri);

                    Intent intent = new Intent(Intent.ACTION_SEND);
                    intent.putExtra(Intent.EXTRA_STREAM, uri);
                    intent.setType("image/jpg");
                    context.startActivity(Intent.createChooser(intent, "Share Via"));
                } catch (Exception e) {
                    Toast.makeText(context, "" + e.getMessage(), Toast.LENGTH_LONG).show();
                    Log.d("sdfds",""+e.getMessage());
                }
            }else {
  Bitmap bitmap = null;
                try {
                    bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), Uri.parse(image_uri));
                    Log.d("pathss",""+bitmap);

                } catch (IOException e) {
                    e.printStackTrace();
                }
                Uri uri = null;
                try {
                    File videoPath = new File(context.getCacheDir(), "videos");
                    videoPath.mkdirs();
                    File file = new File(videoPath, "shared.jpg");
                    FileOutputStream outputStream = new FileOutputStream(file);
                    outputStream.flush();
                    outputStream.close();
                    uri = FileProvider.getUriForFile(context, "com.xyz.fileprovider", file);
                    Log.d("pathss",""+uri);

                    Intent intent = new Intent(Intent.ACTION_SEND);
                    intent.putExtra(Intent.EXTRA_STREAM, uri);
                    intent.setType("video/*");
                    context.startActivity(Intent.createChooser(intent, "Share Via"));
                } catch (Exception e) {
                    Toast.makeText(context, "" + e.getMessage(), Toast.LENGTH_LONG).show();
                    Log.d("sdfds",""+e.getMessage());
                }

尝试这个:

File videoFile = new File(filePath);
Uri videoURI = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
        ? FileProvider.getUriForFile(mContext, mContext.getPackageName(), videoFile)
        : Uri.fromFile(videoFile);
ShareCompat.IntentBuilder.from(getActivity())
        .setStream(videoURI)
        .setType("video/mp4")
        .setChooserTitle("Share video...")
        .startChooser();

暂无
暂无

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

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