我有一个视频文件路径,想要在社交媒体上分享视频,但无法分享视频。我正在尝试在Android Studio 2.2中使用代码,但它无效。
代码段:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button shareBtn = (Button) findViewById(R.id.sharebutton);
shareBtn .setOnClickListener(
new Button.OnClickListener() {
public void onClick(View v) {
File f = new File("/sdcard/VID_20161201123613.mp4");
Uri uriPath = Uri.parse(f.getPath());
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT, "Text");
shareIntent.putExtra(Intent.EXTRA_STREAM, uriPath);
shareIntent.setType("video/*");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "send"));
}
}
);
}
答案 0 :(得分:4)
试试这个:
public void shareVideo(final String title, String path) {
MediaScannerConnection.scanFile(getActivity(), new String[] { path },
null, new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Intent shareIntent = new Intent(
android.content.Intent.ACTION_SEND);
shareIntent.setType("video/*");
shareIntent.putExtra(
android.content.Intent.EXTRA_SUBJECT, title);
shareIntent.putExtra(
android.content.Intent.EXTRA_TITLE, title);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
context.startActivity(Intent.createChooser(shareIntent,
getString(R.string.str_share_this_video)));
}
});
}
答案 1 :(得分:1)
使用此代码从SD卡中挑选视频,然后发送带有视频的电子邮件....
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("video/3gp");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Video");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://sdcard/dcim/Camera/filename.3gp"));
sendIntent.putExtra(Intent.EXTRA_TEXT, "Enjoy the Video");
startActivity(Intent.createChooser(sendIntent, "Email:"));
答案 2 :(得分:0)
使用此代码共享视频
fun shareVideo(filePath:String) {
val videoFile = File(filePath)
val videoURI = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
FileProvider.getUriForFile(baseContext, baseContext.packageName, videoFile)
else
Uri.fromFile(videoFile)
ShareCompat.IntentBuilder.from(this)
.setStream(videoURI)
.setType("video/mp4")
.setChooserTitle("Share video...")
.startChooser()
}