我遇到了 android
MediaStore
的奇怪问题(我使用 android 13,LineageOS 20.0 发行版)。我的音乐库以 flac
格式存储在计算机上,并正确标记了字段 artist
、title
、album
等等(mpd
正确解析并显示所有标签)。在我将它复制到我的 android 设备之前,我首先将所有文件转换为 opus
格式并使用此脚本从相应的 flac
文件复制所有标签(对于单个文件 $f
):
f="$1"
fout="${1%.*}.opus"
TITLE=$(metaflac "$f" --no-utf8-convert --show-tag=TITLE | cut -d '=' -f 2-)
ARTIST=$(metaflac "$f" --no-utf8-convert --show-tag=ARTIST | cut -d '=' -f 2-)
ALBUM=$(metaflac "$f" --no-utf8-convert --show-tag=ALBUM | cut -d '=' -f 2-)
DATE=$(metaflac "$f" --no-utf8-convert --show-tag=DATE | cut -d '=' -f 2-)
GENRE=$(metaflac "$f" --no-utf8-convert --show-tag=GENRE | cut -d '=' -f 2-)
TRACKNUMBER=$(metaflac "$f" --no-utf8-convert --show-tag=TRACKNUMBER | cut -d '=' -f 2-)
TRACKTOTAL=$(metaflac "$f" --no-utf8-convert --show-tag=TRACKTOTAL | cut -d '=' -f 2-)
# Field "DATE" doesn't work on android, so have to use "YEAR" for compatibility
opusenc\
--music\
--bitrate 192\
--discard-comments\
--discard-pictures\
--title "$TITLE"\
--artist "$ARTIST"\
--album "$ALBUM"\
--date "$DATE"\
--comment "YEAR=$DATE"\
--genre "$GENRE"\
--comment "TRACKNUMBER=$TRACKNUMBER"\
--comment "TRACKTOTAL=$TRACKTOTAL"\
"$f" "$fout"
刷新
MediaStore
后,所有文件都正确显示了它们的标签(识别artist
,genre
,在albums
中使用适当的year
分组并且每个文件都有良好的title
和tracknumber
/tracktotal
在音乐播放器以及在 Android 设备上的 Audio
应用程序的 Files
部分浏览媒体时),除了两个带有以下标签(使用 opustags
程序提取):
ENCODER=opusenc from opus-tools 0.2
title=Śmiech czy łzy
artist=Dżem
album=Detox
date=1991
YEAR=1991
genre=Polish Blues Rock
TRACKNUMBER=01
TRACKTOTAL=09
ENCODER_OPTIONS=--music --bitrate 192 --discard-comments --discard-pictures
ENCODER=opusenc from opus-tools 0.2
title=Do kołyski
album=2004
date=2004
YEAR=2004
genre=Polish Blues Rock
TRACKNUMBER=07
TRACKTOTAL=12
ENCODER_OPTIONS=--music --bitrate 192 --discard-comments --discard-pictures
其中
artist
分别显示为“DĹĽem
”和title
分别显示为“Ĺšmiech czy Ĺ,zy
”和“Do koĹ,yski
”。奇怪的是,该艺术家的任何其他曲目(特别是这两张专辑中的曲目)都可以正确显示(artist
是“Dżem
”,而包含变音符号的 title
s 也很好)。
让我们关注标签
artist=Dżem
,title=Śmiech czy łzy
。更奇怪的是,当我将它们更改为 title=Smiech czy łzy
或 title=aaaaaaŚmiech czy łzy
时,保持 artist
不变,一切似乎都有效,并且该曲目与其他曲目按“Dżem
”分组,而不是“DĹĽem
”
" 和音乐播放器在标题中正确显示变音符号。
我试过:
--no-utf8-convert
的情况下使用上面的脚本并更改系统区域设置flac
版本复制到android设备mp3
,使用id3v2
工具/格式设置标签,然后复制到android。
但没有任何帮助。有谁知道发生了什么事,我该如何解决?特别是为什么任何其他带有
artist
、title
或 album
包含变音符号的文件都被 MediaStore
正确解析?