我想知道是否可以重用单个MediaMetadataRetriever
对象来获取多个文件中的元数据?
如果是 - 我应该在每个文件后调用release()
方法,还是只设置不同的数据源,并在处理完所有文件后调用release()
?
API参考不准确:/
谢谢:)
答案 0 :(得分:1)
是的,您可以重复使用该对象。您的代码看起来像这样:
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
for (int i = 0; i < files.length; i++) {
mmr.setDataSource(files[i]);
mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
Bitmap b = mmr.getFrameAtTime(2000000, MediaMetadataRetriever.OPTION_CLOSEST); // frame at 2 seconds
byte [] artwork = mmr.getEmbeddedPicture();
}
mmr.release(); // all done, release the object