Android VideoCapture无法在带有C++;

Android VideoCapture无法在带有C++;,android,c++,opencv,android-ndk,Android,C++,Opencv,Android Ndk,我在Android设备上保存了一个视频文件 使用getPath()函数,我得到了“sdcard/video\u app/sample\u video.avi” 我现在尝试在我的OpenCV C++代码中使用这个视频文件(我使用NDK和JNI): VideoCapture capture("sdcard/video_app/sample_video.avi"); if(capture.isOpened()){ //return true }else{ //return fa

我在Android设备上保存了一个视频文件

使用
getPath()
函数,我得到了“sdcard/video\u app/sample\u video.avi”

我现在尝试在我的OpenCV C++代码中使用这个视频文件(我使用NDK和JNI):
VideoCapture capture("sdcard/video_app/sample_video.avi");

if(capture.isOpened()){
    //return true
   }else{
    //return false
    }
我补充说:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
此路径是对
Environment.getExternalDirectory.getPath()调用的响应
路径是正确的,我已通过以下内容验证:

File file = new File("/storage/emulated/0/turning_pages.avi");
if(file.exists()){
     //returns true
  }
我已经做了更多的测试,imread和imwrite使用类似的路径运行良好,我可以得出结论,视频捕获的问题不在于路径

Mat m = imread("/storage/emulated/0/sbuinex21fyy.jpg"); 

if(!m.empty()){
   //returns true
   } 

imwrite("/storage/emulated/0/sbuinex21fyy.jpg", m); 

然后,我可以在设备存储器中看到该图片的副本

这看起来像是一条相对路径。这是真的吗?i、 e.应用程序的当前工作目录是否包含子目录
sdcard
,其中包含…自从提出问题以来,我已经更改了路径,现在使用的路径是“/storage/simulated/0/turning_pages.avi”,这是来自Environment.getExternalStorage.getPath()的响应;但它仍然不起作用。(路径在Android java代码中工作,用于创建新文件,例如(file file file=new file(“/storage/emulated/0/turning_pages.avi”))好的,你能回答这个问题吗,所以它是最新的吗?TBH,我没有任何Android经验,但相对路径似乎表明了一个相当常见的问题。你最近的评论没有说清楚(尽管你似乎从那以后就编辑了它)你提到的更改的结果是什么。请在问题中明确说明这不是一个无效路径的情况;)我编辑问题是为了澄清。
Mat m = imread("/storage/emulated/0/sbuinex21fyy.jpg"); 

if(!m.empty()){
   //returns true
   } 

imwrite("/storage/emulated/0/sbuinex21fyy.jpg", m);