I have an app that serves as a content provider that stores .mp3 files.
F.e. content://.../player/audio.mp3
How can i get the metadata of these files?
When I stored the data in file:///.../player/audio.mp3
I used MediaMetadataRetriever()
so the code looked like this:
fun metadataDuration(uri: Uri): Long {
val retriever = MediaMetadataRetriever()
retriever.setDataSource(context, uri)
return retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)!!.toLong()
}
But if I try to use uri
as content://.../player/audio.mp3
I get errors:
W/System.err: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188)
W/System.err: at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:151)
W/System.err: at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:705)
W/System.err: at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1687)
W/System.err: at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1503)
W/System.err: at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1420)
W/System.err: at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:171)