Я не профессионал, меня просто расстраивает, что почти ни один линуксовый аудиоплеер не поддерживает тег композитора id3v2, и я хотел бы разобраться, как его добавить. Taglib не поддерживает тег композитора напрямую, но есть обходной путь — создание тега с нуля. Я пытаюсь перевести это на тагпи.
Следующие строки предназначены для создания нового фрейма id3v2 и добавления его в новый список фреймов.
newframe = tagpy.id3v2.TextIdentificationFrame( 'TCOM' )
newframe.setText( "Bruckner" )
newframelist = tagpy.id3v2.FrameList()
newframelist.append( newframelist )
Но последняя строка выдает ошибку.
newframelist.append( newframelist )
Boost.Python.ArgumentError: Python argument types in
id3v2_FrameList.append(id3v2_FrameList, id3v2_FrameList) did not match C++ signature:
append(TagLib::List<TagLib::ID3v2::Frame*> {lvalue}, std::auto_ptr<TagLib::ID3v2::Frame>)
Я неправильно использую команду добавления? Есть ли другой способ сделать это? Является ли проблема с tagpy, то есть он не может правильно обернуть метод добавления?
Обратите внимание, что замена последней строки на «newframelist[ 0 ] = newframe» приводит к аналогичной ошибке.
newframelist[ 0 ] = newframe
Boost.Python.ArgumentError: Python argument types in
id3v2_FrameList.__setitem__(id3v2_FrameList, int, id3v2_TextIdentificationFrame) did not match C++ signature:
__setitem__(TagLib::List<TagLib::ID3v2::Frame*> {lvalue}, unsigned int, std::auto_ptr<TagLib::ID3v2::Frame>)