To better explain how to obtain a file’s URI, let’s assume that we are trying to get the URI of a video named intro.3gp which is in the /res/raw folder. Here’s the code to get the URI:
- Uri introURI;
- introURI = Uri.parse(“android.resource://your.app.package/” + R.raw.intro);
Now let’s assume the same intro.3gp is at the root of the SD card. The code to correctly get the file’s URI would be:
- String introURI;
- introURI = Uri.parse(“file:///sdcard/intro.3gp”);
And that’s it! This method can also be used to obtain any file URI. Expanding a little bit the previous example, to correctly play the video file while using the emulator, instead of usingsetVideoPath(String path) like:
- String introURI = “file:///sdcard/intro.3gp”;
- VideoView videoView;
- //…Omitted videoView initialization…
- videoView.setVideoPath(path);
Obtain the video URI, as show on the previous examples and use the setVideoURI(URI uri)method, like this:
- Uri introURI,
- //obtain the URI of the video file from the ‘res’ folder
- introURI = Uri.parse(“android.resource://your.app.package/” + R.raw.intro);
- //or get it the URI from a the video file at the SD card
- //introURI = Uri.parse(“android.resource://your.app.package/” + R.raw.intro);
- VideoView videoView;
- //…Omitted videoView initialization…
- videoView.setURI(introURI);