я использовал getid3_write_lyrics3 библиотека. не работает
Это мой код:
// Enter your filename here
$filename = 'C:\xampp\htdocs\source2\test.mp3';
//Include getID3() library (can be in a different
directory if full path is specified)
require_once('getid3.php');
// Include desired writer module
require_once('write.lyrics3.php');
//Instantiate desired tag class
$tw = new getid3_write_lyrics3($filename);// Attempt to write new tag -- NOTE: all values must be in ISO-8859-1
try
{
$tw->title = 'bhavi';
$tw->artist = 'asas';
$tw->album = 'A new album';
$tw->author = 'bhavi author';
$tw->comment = 'bhavika commment';
$tw->images = 'C:\xampp\htdocs\source2\image.jpg';
$tw->synched = true;
$tw->lyrics = "[00:02]Let's talk about time\r\n[00:02]tickin' away
every day\r\n[00:05]so wake on up before it's gone away\r\n";
if(!$tw->write())
{
echo "not success";
}else{
print 'New tag written<br>';
}
}catch (Exception $e)
{
print $e->message;
}
ВЫХОД
Новый тег написан
но файл MP # показывает пустые теги MP3. покажи мой скриншот ниже.
Скриншот:
Поскольку ОП на самом деле не задал вопрос и не упомянул в комментарии, что он хотел добавить текст в mp3 с id3, я отвечаю.
Вам не нужно использовать lyrics3, вы можете просто использовать обычный id3v2.
У меня была похожая проблема, чтобы сохранить текст песни с пакетом getID3. Это связано с проблемой грамматики в getID3 в файле «getID3 / getid3 / write.id3v2.php», строка 1982 и строка 2057.
Я бы просто прокомментировал ответ @Tom, но пока не могу комментировать. Поэтому я использую его коды:
$filename = 'fullpath/to/your/music.mp3' ;
$sLyrics = "the lyrics go here" ;
$TextEncoding = 'UTF-8';
require_once('./getid3/getid3/getid3.php');
$getID3 = new getID3;
$getID3->setOption(array('encoding'=>$TextEncoding));
require_once('./getid3/getid3/write.php');
$tagwriter = new getid3_writetags;
$tagwriter->filename = $filename ;
$tagwriter->tagformats = array('id3v2.3');
$tagwriter->overwrite_tags = true;
$tagwriter->remove_other_tags = false;
$tagwriter->tag_encoding = $TextEncoding;
$TagData = array(
'unsychronised_lyric' => array( $sLyrics ),
);
$tagwriter->tag_data = $TagData;
$tagwriter->WriteTags();
Ключ должен изменить ‘unsynchronised_lyrics’ на ‘unsychronised_lyric’ с ошибкой в их написании.
Я открыл вопрос для этого в Джеймс Генрих getId3, поэтому будьте осторожны при обновлении пакета, если в будущем они вернутся к нормальному состоянию, чтобы ваши коды не переставали писать текст.
ОБНОВИТЬ —
Поскольку я получил немедленный ответ, ошибка опечатки была не из пакета getID3, а из id3 org напрямую, так что останется как есть. Так что используйте «unsychronised_lyric» безопасно.
Да, я думаю, что вы используете демонстрационный код. У меня тоже не сработало, хотя запуск его вернет true. Трудно искать ошибки, если они не возвращают ошибки правильно.
Используя ту же библиотеку, это сделало работу:
$filename = 'fullpath/to/your/music.mp3' ;
$sLyrics = "the lyrics go here" ;
$TextEncoding = 'UTF-8';
require_once('./getid3/getid3/getid3.php');
$getID3 = new getID3;
$getID3->setOption(array('encoding'=>$TextEncoding));
require_once('./getid3/getid3/write.php');
$tagwriter = new getid3_writetags;
$tagwriter->filename = $filename ;
$tagwriter->tagformats = array('id3v2.3');
$tagwriter->overwrite_tags = true;
$tagwriter->remove_other_tags = false;
$tagwriter->tag_encoding = $TextEncoding;
$TagData = array(
'unsynchronised_lyrics' => array( $sLyrics ),
);
$tagwriter->tag_data = $TagData;
$tagwriter->WriteTags();