【问题标题】:Android videoview - Error for internal storage URIAndroid videoview - 内部存储URI错误
【发布时间】:2018-01-19 04:05:46
【问题描述】:

我是 Android 编程的初学者,我有一个疑问需要澄清。
我在 Android 中试用了有关 VideoView 的教程并观察到,

当指定的URI字符串为“http://www.androidbegin.com/tutorial/AndroidCommercial.3gp”时,程序运行。

我尝试将 URI 字符串替换为手机内部存储 (/storage/emulated/0/Movies/test.mp4) 中存在的视频的位置,但程序产生了错误 java.io.IOException: setDataSource failed

我的问题是错误表示什么以及为什么会发生?因为两个 URI 字符串都指定了要播放的视频。

(注:我关注了this tutorial

【问题讨论】:

    标签: java android


    【解决方案1】:

    尝试使用此代码从图库中获取视频:

    // in onCreate method    
    Intent getVid= new Intent();
                                getVid.setType("video/*");
                                getVid.setAction(Intent.ACTION_GET_CONTENT);
                                startActivityForResult(Intent.createChooser(getVid, "Select a video" ),
    
    
    @Override
                protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                    super.onActivityResult(requestCode, resultCode, data);
                    } if (requestCode == 1 && resultCode == RESULT_OK){
                        String videoUrl = data.getData().toString();
                        Intent i = new Intent(MainActivity.this , videoViewActivity.class);
                        i.putExtra("vid" , videoUrl);
                        startActivity(i);
    
                    }
    

    在 videoViewActivity 中,在初始化 videoView 后在 onCreate 方法中输入这段代码:

    String path = getIntent().getStringExtra("vid");
    videoView.setVideoPath(path);
    videoView.start();
    

    【讨论】:

      【解决方案2】:

      这可能是因为你的 Uri。当您使用Uri.parse("/blabla") 时,它不会验证该路径,它是否真的存在。在您的情况下,您需要提供类似“file:///storage/emulated/0/Movies/test.mp4”的内容。或者您的应用没有文件权限,您需要先添加权限检查。

      【讨论】:

      • 我尝试了下面给出的 Akash Pal 的回答,它奏效了。所以它不可能是权限,而是 URI 本身,但是,它仍然没有意义。它如何通过getExternalStorageDirectory 验证存储在设备内部存储上的视频的路径,该路径清楚地说明了对存储在外部存储上的内容的路径检索?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多