[英]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.