2013-01-16 27 views
1

我試圖給一首歌分配一張圖片,並且我有一些可以在mac上使用但不在PC上的代碼。使用誘變mac與pc分配專輯圖片

song = MP3(self.file, ID3=ID3) 

    # add ID3 tag if it doesn't exist 
    try: 
     song.add_tags() 
    except error: 
     print "we got an image error" 
     pass 

    song.tags.add(
     APIC(
      encoding=3, 
      mime='image/jpeg', 
      type=2, 
      desc=u'Cover', 
      data=open('example.JPG', 'rb').read() 
     ) 
    ) 
    song.save() 

從mutagen.id3進口ID3,APIC,錯誤

從mutagen.mp3進口MP3

高清image_assigner(個體經營)mutagen.easyid3進口EasyID3

所以在Mac上,這段代碼可以工作,但是當我在P上嘗試時C,它不會。任何幫助,將不勝感激。謝謝!

編輯 所以,做一些更多的研究之後,我想通了,這個代碼並保存專輯封面Mac上的MP3文件以及Windows,但將其保存在ID3v2.4,其中Mac可以閱讀,但Windows無法閱讀,所以它看起來像它沒有保存在Windows上。看來在誘變劑保存功能中使用v1 = 2選項應該將標記保存在ID3v1中(請參見this頁面上的10月4日發佈)。如果我更新專輯,藝術家,標題等的標籤,但是當我爲專輯封面添加標籤時,它似乎仍然工作,但它仍然不會顯示在Windows資源管理器中。有沒有人有這方面的經驗,並可以對此有所瞭解?謝謝。

+0

您可以添加關於它究竟是什麼不起作用的信息嗎? – RocketDonkey

+0

它不會將圖像分配給文件。當我在mac中執行它時,它將圖像分配給mp3文件,而當我在Windows中執行時,它不會。它不會拋出任何錯誤或任何東西,但它只是沒有做到它應該做的。 – user1432738

+0

任何人有任何建議? – user1432738

回答

1

是的,不幸的是Windows不支持該版本。不要只是將其保存在ID3v1中,請嘗試將其保存在ID3v3ID3v1之間。我在我的程序中使用它,它在Windows 8OSX中很好用。

from mutagen.mp3 import MP3 
from mutagen.id3 import ID3, APIC, error, TRCK, TIT2, TPE1, TALB, TDRC, TCON 

audio = MP3([PATH_TO_FILE], ID3=ID3) 
audio.tags.delete([PATH_TO_FILE], delete_v1=True, delete_v2=True) 
audio.tags.add(
    APIC(
     encoding=3, 
     mime='image/jpeg', 
     type=3, 
     desc=u'Cover', 
     data=open([PATH_TO_COVER_IMAGE], 'rb').read() 
    ) 
) 
audio.save([PATH_TO_FILE], v2_version=3, v1=2) 
相關問題