![](/img/trans.png)
[英]“FileNotFoundException” when trying to read from JSON file in Android Studio
[英]FileNotFoundException when trying to upload a recorded video to server from Android app
我正在尝试录制视频,然后在完成后将其上传到服务器。 相关代码在这里:
public void recordVideo(View view){
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(takeVideoIntent, VIDEO_RESULT);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == VIDEO_RESULT){
handleCameraVideo(data);
}
}
private void handleCameraVideo(Intent intent) {
Uri mVideoUri = intent.getData();
File vidFile = new File(mVideoUri.getPath());
RequestParams params = new RequestParams();
try{
params.put("video", vidFile);
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
//finish upload here, this part isn't relevant to my question
}
问题是在我的try
块中抛出FileNotFoundException,并且打印出了堆栈跟踪。 似乎我应该获取正确的文件:我从Android开发人员网站上获取了大部分代码,直到我制作该文件的那部分,因此它应该可以工作-这使我相信问题出在File vidFile = new File(mVideoUri.getPath());
线。 任何帮助,将不胜感激。
我最终在这里找到另一个问题,该问题包含一些有助于我解决问题的代码:
private String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
然后在我的handleCameraVideo
方法中:
private void handleCameraVideo(Intent intent) {
Uri mVideoUri = intent.getData();
String data = getRealPathFromURI(mVideoUri);
File vidFile = new File(data);
....
这有效,并为我提供了正确的文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.