如何让 Rhythmbox 将专辑封面同步到 Android?

如何让 Rhythmbox 将专辑封面同步到 Android?

我的 Rhythmbox 与我的 Android 手机同步得很好。它会自动将 FLAC 转码为 M4a,并保持正确的目录结构和曲目文件名。到目前为止一切顺利。

但是,同步过程不会复制专辑封面。在每个专辑目录中,我都有一个名为“cover.jpg”的文件,Rhythmbox 可以很好地使用它,但它不会传输到我的 Android SD 卡上。在 Banshee 上,专辑封面会被复制,但它有一系列令人烦恼的其他错误,使我无法使用它作为解决方法。

答案1

我有一个非常相似的设置,只是我不转码我的 flac 文件。我发现我需要使用 metaflac 将专辑封面嵌入到 flac 文件本身中:

metaflac --import-picture-from="yourcover.jpg" "你的音乐文件.flac"

您必须为此过程编写一个脚本,但我有一个 perl 脚本可供您使用,只需进行修改以匹配您的目录位置即可:

#!/usr/bin/perl

use strict;
use warnings;

my $artist;
my $album;
my $filename;
my $cover_filename;

if($#ARGV != 0)
{
    print("Usage: add_album_art_flac.pl <TOP DIR>\n");
    exit;
}

print("Getting artist album info...\n");
my @flac_album_artist = `find . -type f -name \"*.flac\" -exec metaflac --with-filename --show-tag=\"Artist\" --show-tag=\"Album\" {} \\\;`;
print("Got artist album info\n");

foreach my $flac_file (@flac_album_artist)
{
    if($flac_file =~ /^(.+):ARTIST=(.+)$/)
    {
        $filename = $1;
        $artist = $2;
    }
    elsif($flac_file =~ /^(.+):ALBUM=(.+)$/)
    {
        if($filename ne $1)
        {
            undef $artist;
            print("ERROR: Failed Sanity Check.  Dying...");
            die;
        }
        elsif(defined $artist)
        {
            $album = $2;
            $cover_filename = "/home/fred/.cache/rhythmbox/covers/$artist - $album.jpg";

            print("Fetching $cover_filename...\n");
            system("metaflac --import-picture-from=\"$cover_filename\" \"$filename\"");

            if($? == -1)
            {
                print("Failed to add $cover_filename to $artist - $album\n");
            }
            else
            {
                print("Successfully added $cover_filename to $filename\n");
            }
        }

        undef $artist;
    }
    else
    {
        print("ERROR: Bad line.  Dying...\n");
        die;
    }
}

相关内容