MediaMetadataRetriever недопустимый аргумент

Я пытаюсь получить кадр из видео, которое пользователь выбирает из своей галереи. Я использую MediaMetadataRetreiver и по какой-то причине на "setDataSource" я получаю недопустимый аргумент.

Я передаю туда строку видео о местоположении. Я не знаю, что я делаю не так, но на этой линии всегда происходит сбой.

Пример кода

     private void uploadData(final Uri videoUri, final String videoPath) {
    if(videoUri != null){
        UploadTask uploadTask = videoRef.putFile(videoUri);

        uploadTask.addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
                if(task.isSuccessful())
                    Toast.makeText(getContext(), "Upload Complete", Toast.LENGTH_LONG).show();
                    progressBarUpload.setVisibility(View.INVISIBLE);
                    etTitleMusic.setText("");
                    progressDialog.dismiss();


                createFrameFromVideo(videoPath);

                String videoUrl = task.getResult().getDownloadUrl().toString();


            }
        }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                updateProgress(taskSnapshot);
            }
        });
    }else {
        Toast.makeText(getContext(), "Nothing to upload", Toast.LENGTH_SHORT).show();
    }

}

private void createFrameFromVideo(String videoPath) {
    MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
    mediaMetadataRetriever.setDataSource(videoPath);
    Bitmap bmFrame = mediaMetadataRetriever.getFrameAtTime(5000000);
    imageView.setImageBitmap(bmFrame);
    imageView.setVisibility(View.VISIBLE);
}

В этой строке mediaMetadataRetriever.setDataSource(videoPath); это сбой.

Что я делаю неправильно?

Редактировать - Ошибка журнала

   12-02 13:40:39.212 15082-15082/com.world.bolandian.talent E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: com.world.bolandian.talent, PID: 15082
                                                                        java.lang.IllegalArgumentException
                                                                            at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:73)
                                                                            at com.world.bolandian.talent.fragments.AddVideoAudioFragment.createFrameFromVideo(AddVideoAudioFragment.java:207)
                                                                            at com.world.bolandian.talent.fragments.AddVideoAudioFragment.access$400(AddVideoAudioFragment.java:44)
                                                                            at com.world.bolandian.talent.fragments.AddVideoAudioFragment$2.onComplete(AddVideoAudioFragment.java:187)
                                                                            at com.google.firebase.storage.zzl.zzi(Unknown Source)
                                                                            at com.google.firebase.storage.zzaa.run(Unknown Source)
                                                                            at android.os.Handler.handleCallback(Handler.java:742)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                            at android.os.Looper.loop(Looper.java:157)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5571)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)

0 ответов

Другие вопросы по тегам