2013-06-15 2 views

답변

1

사용이 라이브러리 :

http://metacpan.org/pod/MP3::Tag::ID3v2

#!/usr/local/bin/perl 

use MP3::Tag; 
use Image::Magick; 

$file = “file.mp3″; 
$jpg = “file.jpg”; 

my $image = new Image::Magick; 
if (my $x = $image->Read($jpg)) { 
print “Couldn’t read image ‘$jpg’\n”; 
}else{ 
$imagedata = $image->ImageToBlob(magick => jpg); 
undef $image; 
} 

my $mp3 = MP3::Tag->new($file); 
$mp3->get_tags(); 

$mp3->{ID3v2}->remove_tag() if exists $mp3->{ID3v2}; 
$mp3->{ID3v1}->remove_tag() if exists $mp3->{ID3v1}; 

my $id3v2 = $mp3->new_tag(“ID3v2″); 
$id3v2->add_frame(“TALB”, $album); 
$id3v2->add_frame(“TPE1″, $artist); 
$id3v2->add_frame(“TIT2″, $title); 
$id3v2->add_frame(“APIC”, chr(0×0), ‘image/jpg’, chr(0×0), ‘Cover (front)’, $imagedata); 
$id3v2->write_tag(); 

my $id3v1 = $mp3->new_tag(“ID3v1″); 
$id3v1->song($title); 
$id3v1->artist($artist); 
$id3v1->album($album); 
$id3v1->write_tag(); 
$mp3->close(); 

어떤 사람들은이 손상 mp3 파일을 생성하는 신고는 정말 이미 고정 알고 있지만 경우, 줄을 주석으로하지 않습니다

$flags = chr(128) if $tag_data =~ s/\xFF(?=[\x00\xE0-\xFF])/\xFF\x00/g; 

그리고 정상적으로 작동합니다.

+0

감사합니다. –

+1

특정 버전의 모듈을 가리키는 이유가 없으면 특정 버전이 아닌 URL 중 하나를 사용하십시오. http://search.cpan.org/perldoc/MP3::Tag::ID3v2 http://search.cpan.org/dist/MP3-Tag/ http://metacpan.org/module/MP3::Tag : : ID3v2 http://p3rl.org/MP3::Tag::ID3v2 (현재 metacpan.org 사이트로 리디렉션 됨) –

관련 문제