Home > Mobile >  Android Java Get path from URI for an mp4
Android Java Get path from URI for an mp4

Time:11-05

I'm trying to get a load a mp4 file from the android file browser. However the path from the following code does not work. It throws an exception

        Uri currFileURI = data.getData();
        String path=currFileURI.getPath();

        MediaExtractor extractor = new MediaExtractor();
        try {
            extractor.setDataSource(path);
        } catch( IOException e) {
            e.printStackTrace();
            return;
        }

Data I have:

data = {Intent@9869} "Intent { dat=content://com.android.providers.downloads.documents/document/44 flg=0x1 }" currFileURI = {Uri$HierarchicalUri@9870} "content://com.android.providers.downloads.documents/document/44" path = "/document/44"

I see this code in stackoverflow: How to get the Full file path from URI

This looks like an overkill

I can see the method takes in a file path. https://developer.android.com/reference/android/media/MediaExtractor#setDataSource(java.lang.String)

So it looks the path from the android file browser is different from what the method wants. I also see that the path from the file browser is different than the file name. Anybody have an insight into what the path should look like?

CodePudding user response:

So it looks the path from the android file browser is different from what the method wants

It is not a filesystem path, because a Uri is not a file.

I can see the method takes in a file path

There are many forms of setDataSource() on MediaExtractor, including one that takes a Uri. Try using that method with your Uri.

  • Related