path = "/mnt/media_rw/336C-7725/test.mp3"
mmr.setDataSource(path);
这是一条USB路径,当我尝试运行时,我具有系统uid
我收到此错误!
我确定此mp3文件没有问题。
它是随机的,有时还可以,但是现在setDataSource失败了:status = 0x80000000
我尝试了在SO上发现的几乎所有操作,但是没有用。
我的代码
public static ArrayList<MusicInfo> mediaItemListToMusicInfo(List<MediaItem> mediaItemList) {
ArrayList<MusicInfo> musicInfoList = new ArrayList<>();
int i = 10000;
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
for (MediaItem mediaItem : mediaItemList) {
//todo:空文件的异常处理
String musicPath = mediaItem.getUrl();
Log.d("usb mediaItemListToMusicInfo", musicPath);
MusicInfo musicInfo = new MusicInfo();
musicInfo.songId = i++;
musicInfo.size = Long.valueOf(mediaItem.getLength());
musicInfo.data = musicPath;
musicInfo.musicName = mediaItem.getName().substring(0, mediaItem.getName().lastIndexOf("."));
try {
mmr.setDataSource(musicPath);
musicInfo.musicName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE) == null ?
mediaItem.getName().substring(0, mediaItem.getName().lastIndexOf("."))
: mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
musicInfo.artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST) == null ?
"未知" : mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
musicInfo.albumName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM) == null ?
"未知" : mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
musicInfo.duration = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION) == null ?
0 : Integer.valueOf(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION));
} catch (RuntimeException e) {
e.printStackTrace();
Log.e("usb mediaItemListToMusicInfo", "解析音频出错!");
}
Log.d("usb musicInfo", musicInfo.toString());
musicInfoList.add(musicInfo);
}
mmr.release();
return musicInfoList;
}
我看到下面的日志: 11-13 17:56:58.162 11327 11327 D usb mediaItemListToVideo:/ mnt / media_rw / C013-AF73 /测试用视频/SampleVideo_1280x720_10mb.mkv 11-13 17:56:58.162 11327 11327 E usb mediaItemListToMusicInfo:解析视频出错! 11-13 17:56:58.163 1749 1749 E MetadataRetrieverClient:检索器未初始化 11-13 17:56:58.164 1749 1749 E MetadataRetrieverClient:检索器未初始化