getID3 写入 ETCO 和 TCON 标签

问题描述

我正在尝试使用 getID3 编写 ETCO 和 TCON id3v2 标签。我遇到了问题。

这是代码

<?PHP
require_once '/getid3/getid3.PHP';
$file = '/mp3s/1.mp3';

   $TaggingFormat = 'UTF-8';
    $getID3 = new getID3;
    $getID3->setoption(array('encoding'=>$TaggingFormat));
    require_once('/getid3/write.PHP');
    $tagwriter = new getid3_writetags;
    $tagwriter->filename = $file;
    $tagwriter->tagformats = array('id3v2.3');
    
// set varIoUs options (optional)
$tagwriter->overwrite_tags = true;
$tagwriter->merge_existing_date = true;
$tagwriter->tag_encoding = $TaggingFormat;
$tagwriter->remove_other_tags = false;

// populate data array
$TagData['Artist'][] = 'This Artist';
$TagData['Album'][] = 'This Album';
$TagData['Genre'][] = 'Dance';


$TagData['id3v2']['ETCO'][0] = array(
'frame_flags_raw' => '0','datalength' => '30','dataoffset' => '500','framenamelong' => 'Event Timing Codes','framenameshort' => 'event timing codes','timestampformat' => '2'
);


$TagData['id3v2']['TCON'][0] = array(
'frame_flags_raw' => '0','data' => '3','datalength' => '4','dataoffset' => '55','framenameshort' => 'genre'
);


$tagwriter->tag_data = $TagData;

// write tags

if ($tagwriter->WriteTags()) {
    echo 'Successfully wrote tags<br>';
    if (!empty($tagwriter->warnings)) {
        echo 'There were some warnings:<br>'.implode('<br><br>',$tagwriter->warnings);
    }
} else {
    echo 'Failed to write tags!<br>'.implode('<br><br>',$tagwriter->errors);
}


?>

这是我得到的回报...

Failed to write tags!<br>ID3v2: Skipping "ID3V2" because cannot match it to a kNown ID3v2 frame type<br><br>WriteID3v2() Failed with message(s):<pre><ul><li>Invalid Text Encoding in TCON (3) for ID3v2.3</li><li>$this-&gt;GenerateID3v2FrameData() Failed for &quot;TCON&quot;</li><li>$this-&gt;GenerateID3v2Tag() Failed</li></ul></pre>

关于这些标签的文档非常少。我不知道如何为这些类型的标签构建数组。知道我做错了什么吗?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)