如何使用 phone 的标准视频播放器应用播放视频
How to play videos with phone's standard video player app
我想使用 phone 的标准视频播放器应用播放存储在外部存储器中的视频。我试过使用 FileProvider,但无法将视频传递给播放器。
private void passVideo(String videoname){
File videoPath = new File(Environment.getExternalStorageDirectory(), "video_folder");
File newFile = new File(videoPath, videoname);
Uri path = FileProvider.getUriForFile(this, "com.example.provider", newFile);
Intent shareIntent = ShareCompat.IntentBuilder.from(this)
.setType(getContentResolver().getType(path))
.setStream(path)
.getIntent();
shareIntent.setData(path);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "Open Video..."));
}
通过这段代码,我设法获得了 gmail、whatsapp 和其他社交媒体平台的选择器,但这不是我想要的,他们都说他们无论如何都无法处理文件格式。它还提供了使用 VLC 播放视频的选项,但它会立即崩溃。
我已经尝试了所有可能的文件格式,并且 none 有效。
对不起,如果我遗漏了一些明显的东西,我还是个初学者。
ShareCompat.IntentBuilder
用于 ACTION_SEND
,这不是播放视频的典型 Intent
操作。 ACTION_VIEW
会更典型。所以,试试:
private void passVideo(String videoname){
File videoPath = new File(Environment.getExternalStorageDirectory(), "video_folder");
File newFile = new File(videoPath, videoname);
Uri uri = FileProvider.getUriForFile(this, "com.example.provider", newFile);
Intent viewIntent = new Intent(Intent.ACTION_VIEW, uri);
viewIntent.setType(getContentResolver().getType(uri));
viewIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(viewIntent);
}
我想使用 phone 的标准视频播放器应用播放存储在外部存储器中的视频。我试过使用 FileProvider,但无法将视频传递给播放器。
private void passVideo(String videoname){
File videoPath = new File(Environment.getExternalStorageDirectory(), "video_folder");
File newFile = new File(videoPath, videoname);
Uri path = FileProvider.getUriForFile(this, "com.example.provider", newFile);
Intent shareIntent = ShareCompat.IntentBuilder.from(this)
.setType(getContentResolver().getType(path))
.setStream(path)
.getIntent();
shareIntent.setData(path);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "Open Video..."));
}
通过这段代码,我设法获得了 gmail、whatsapp 和其他社交媒体平台的选择器,但这不是我想要的,他们都说他们无论如何都无法处理文件格式。它还提供了使用 VLC 播放视频的选项,但它会立即崩溃。 我已经尝试了所有可能的文件格式,并且 none 有效。
对不起,如果我遗漏了一些明显的东西,我还是个初学者。
ShareCompat.IntentBuilder
用于 ACTION_SEND
,这不是播放视频的典型 Intent
操作。 ACTION_VIEW
会更典型。所以,试试:
private void passVideo(String videoname){
File videoPath = new File(Environment.getExternalStorageDirectory(), "video_folder");
File newFile = new File(videoPath, videoname);
Uri uri = FileProvider.getUriForFile(this, "com.example.provider", newFile);
Intent viewIntent = new Intent(Intent.ACTION_VIEW, uri);
viewIntent.setType(getContentResolver().getType(uri));
viewIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(viewIntent);
}