【问题标题】:How to get the album art of a media file in Xamarin?如何在 Xamarin 中获取媒体文件的专辑封面?
【发布时间】:2020-04-07 14:15:45
【问题描述】:

我一直在寻找有关如何从文件路径获取歌曲(或视频的帧捕获)的专辑封面的几天。我只能找到与Mediastore 相关的内容,例如answer,它需要获取文件的专辑ID。

Cursor cursor = getContentResolver().query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, 
                new String[] {MediaStore.Audio.Albums._ID, MediaStore.Audio.Albums.ALBUM_ART}, 
                MediaStore.Audio.Albums._ID+ "=?", 
                new String[] {String.valueOf(albumId)}, 
                null);

if (cursor.moveToFirst()) {
    String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ART));
    // do whatever you need to do
}

但我找不到关于它如何工作的指南,如何将文件传递到 Mediastore 或如何获取媒体的专辑 ID 或其他任何内容...目前我使用 MediaMetadataRetriever 获取媒体信息但是我找不到使用它获取专辑封面或媒体文件视频缩略图的方法...

** 更新:-

如果必须首先使用Mediastore 来获取媒体文件,然后再使用它来获取它们的数据,我可以实现它而不是我目前正在做的事情(目前我迭代设备文件以获得支持文件),它可能是一个更好的选择,因为Mediastore 也支持从外部存储中获取数据。

感谢任何帮助。

【问题讨论】:

    标签: xamarin.android mediastore albumart


    【解决方案1】:

    如果使用 MediaMetadataRetriever ,您可以尝试以下示例代码:

    private void loadingCover(string mediaUri)
    {
        MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
        mediaMetadataRetriever.SetDataSource(mediaUri);
        byte[] picture = mediaMetadataRetriever.GetEmbeddedPicture();
        Android.Graphics.Bitmap bitmap = BitmapFactory.DecodeByteArray(picture, 0, picture.Length);
        musicCover.SetImageBitmap(bitmap);
    }
    

    另外,不要忘记添加权限:

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    

    如下调用它:

    File file = new File("/storage/sdcard/Movies/music1.mp4");
    if (file.Exists())
    {
        loadingCover(file.AbsolutePath);
    }
    

    【讨论】:

    • 非常感谢,这实际上就像魅力
    • @MohamedAshraf 是的,它也适用于视频文件!还有其他方法也可以试试MediaMetadataRetriever,比如:mediaMetadataRetriever.GetFrameAtIndex(0);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多