我正在开发视频播放器应用程序。我希望这个应用程序可以作为从sdcard,专辑或手机的任何文件夹中选择视频的选项出现。当我选择我的视频播放器播放视频时,它会转到应用程序,但无法播放视频。我已获得读写清单中外部存储的权限。以下是我的代码:

 Intent in =getIntent();
 file_path = in.getData().getPath();
 System.out.println("file path from sdcard:"+file_path);
  videoView =(VideoView)findViewById(R.id.video);

   MediaController mediaController= new MediaController(this);
    mediaController.setAnchorView(videoView);
     Uri uri=Uri.parse(file_path);
     videoView.setVideoURI(uri);
     videoView.requestFocus();
         videoView.start();


错误:

 10-19 10:39:40.917: I/System.out(20430): file path from sdcard:/external/video/media/24363
 10-19 10:39:40.987: E/MediaPlayer(20430): Uri is  <URL suppressed>
 10-19 10:39:40.997: E/MediaPlayer(20430): error (1, -2147483648)
 10-19 10:39:41.017: E/MediaPlayer(20430): Error (1,-2147483648)
 10-19 10:39:41.017: D/VideoView(20430): Error: 1,-2147483648


编辑:测试电话:具有32Gb内置内存且没有Sdcard的Android 4.1。

最佳答案

答案是here

 public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Video.Media.DATA };
    Cursor cursor = managedQuery(contentUri, proj, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

10-07 19:40
查看更多