从图库中选择视频文件会在android中创建一个空白屏幕

时间:2020-05-14 17:33:23

标签: android

从“图库”中选择视频时,会在开始上传到Firebase之前创建一个黑屏(黑屏)。上传成功,但是黑屏会冻结该应用程序。 这是我的代码。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT, MediaStore.Video.Media.INTERNAL_CONTENT_URI);
intent.setType("video/*");
startActivityForResult(intent, RequestCodeForVideoPick);
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RequestCodeForVideoPick && resultCode == Activity.RESULT_OK) {
        if (data == null) {
            //Display an error
            return;
        }
 final Uri resultUri = data.getData();
 uploadTask = filePath.putFile(resultUri);

 //filePath firestorepath

...............
...............
}

似乎与文件大小有关。我正在尝试的视频是7.5 MB。因为当我选择具有类似代码的图像时。我没有看到任何错误。

我尝试使用createChooser。我得到相同的结果。

startActivityForResult(Intent.createChooser(intent, "select video"), RequestCodeForVideoPick);

编辑1:似乎是因为从Google照片中提取了视频文件。

编辑2:我尝试从设备加载文件。黑屏不出现。

请提出任何解决方案。

1 个答案:

答案 0 :(得分:0)

尝试使用此库,它很轻巧且易于使用。它适用于图片,视频,音频和文件。

https://github.com/informramiz/AndroidFilePickerLibrary

样品用量:

implementation 'io.github.informramiz:androidfilepickerlibrary:1.7'

在您选择视频文件的地方,请使用以下代码:

FilePicker.showCameraPickerDialog(this);

库将返回捕获的图片,视频,音频和文件。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //check if this result of AndroidFilePickerLibrary
        if (FilePicker.canHandleActivityResult(requestCode)) {
            //fetch the returned object
            FileInfo fileInfo = FilePicker.onActivityResult(requestCode, resultCode, data);
            //show the UI in a TextView
            uriTextView.setText("Uri: " + fileInfo.getUri().toString());
        }
    }