Я использовал библиотеку getid3_write_lyrics3. не работает

я использовал 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. покажи мой скриншот ниже.

Скриншот:

введите описание изображения здесь

0

Решение

Поскольку ОП на самом деле не задал вопрос и не упомянул в комментарии, что он хотел добавить текст в 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» безопасно.

1

Другие решения

Да, я думаю, что вы используете демонстрационный код. У меня тоже не сработало, хотя запуск его вернет 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();
0

По вопросам рекламы [email protected]