MKV 文件的媒体存储持续时间 returns 0

Mediastore duration of MKV file returns 0

我正在尝试从 mediastore 获取 MKV 文件的持续时间。但是,它 returns 我 0。如果我使用 Mediaplayer MediaPlayer.create ,媒体播放器为空并且我收到一条错误消息 (-1,2147483648),其中包含准备失败的消息。我可以获取扩展名为 mp4 的其他视频的持续时间。路径有问题吗?谁能帮忙?

第一种方法:

long duration = cursor.getLong(MediaStore.Video.VideoColumns.DURATION); 这个returns0.

第二种方法:

Uri uri = Uri.fromFile(new File(filePath)); 
MediaPlayer mp = MediaPlayer.create(TestApplication.getAppContext(), uri);

// uri is file:///storage/emulated/0/Movies/Test.MKV

这个returns mp = null。

我也试过 MediaMetadataRetriever 但也返回了 null。如何获取时长?

似乎 MKV 文件已损坏。因此,关闭此。