The last line in the below code where I set the FileDescriptor as a data source of the MediaMetadataRetriever throws IllegalArgumentException (MediaMetadataRetrieverJNI: invalid file descriptor.)
ContentResolver resolver = getActivity().getBaseContext().getContentResolver();
final ParcelFileDescriptor parcelFileDescriptor;
try {
Uri uri = Uri.fromFile(new File(videoPath));
parcelFileDescriptor = resolver.openFileDescriptor(uri, "r");
} catch (FileNotFoundException e) {
Log.w("Could not open '" + videoPath + "'", e);
Toast.makeText(getActivity(), "File not found.", Toast.LENGTH_LONG).show();
return;
}
FileDescriptor fileDescriptor = null;
if (parcelFileDescriptor != null) {
fileDescriptor = parcelFileDescriptor.getFileDescriptor();
if(fileDescriptor == null)
Log.i(TAG, "fileDescriptor is null.");
MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
mediaMetadataRetriever.setDataSource(mInputFileDescriptor);
Any idea what causes the FileDescriptor to be invalid? Thanks.