我正在 Android 中开发一个音乐应用程序,当检索歌曲的专辑、艺术家、流派名称时,我得到了一些未知名称。
对于专辑,未知专辑名称显示为“音乐”。对于艺术家,未知艺术家名称显示为“”,对于流派,未知流派显示为“”
这些默认名称在所有设备上都相同吗?因为我想将那些未知名称重命名为更具可读性 - 例如:“未知艺术家”或“未知专辑”
我只在 2 台设备上尝试过,发现未知专辑名称显示为“音乐”,但未知艺术家名称在两种设备中的显示方式不同。
我想知道如何处理这些未知名称。
我正在 Android 中开发一个音乐应用程序,当检索歌曲的专辑、艺术家、流派名称时,我得到了一些未知名称。
对于专辑,未知专辑名称显示为“音乐”。对于艺术家,未知艺术家名称显示为“”,对于流派,未知流派显示为“”
这些默认名称在所有设备上都相同吗?因为我想将那些未知名称重命名为更具可读性 - 例如:“未知艺术家”或“未知专辑”
我只在 2 台设备上尝试过,发现未知专辑名称显示为“音乐”,但未知艺术家名称在两种设备中的显示方式不同。
我想知道如何处理这些未知名称。
似乎您需要UNKNOWN_STRING:
当媒体属性未知时使用的字符串。例如,如果音频文件没有任何元数据,则艺术家和专辑列将设置为此值。
我在这里检查了 MediaPlayer android 代码,实际上默认情况下它正在执行以下步骤:
因此,您只需要检查 ContentProvider 返回的数据MediaStore.UNKNOWN_STRING
并处理任何您喜欢的数据。(例如,在所有设备上提供相同的字符串)。
比如签出com.android.music.MediaPlaybackActivity源码,它有如下代码:
if (MediaStore.UNKNOWN_STRING.equals(albumName)) {
albumName = getString(R.string.unknown_album_name);
albumid = -1;
}
If your audio media have no album metadata then android scanner sets the album name to the name of the folder containing your media.