0
我正在Rails應用程序中實現一個ruby,它從dropbox文件夾下載歌曲,然後對它們執行一些操作,比如提取一些元標記。現在,我使用了屬於同一專輯的10首mp3,因此它們具有相同的編碼等。但是,在嘗試使用taglib-ruby讀取元標記時,10個文件中的3個會拋出錯誤,並說:taglib(-ruby)無法讀取特定文件
TagLib: FileRef::tag() - Called without a valid file.
TagLib: FileRef::audioProperties() - Called without a valid file.
我作爲指導提供here on the left的代碼,從而導致:
def read_metatags
TagLib::FileRef.open(self.local_path) do |fileref|
unless fileref.null?
logger.info "Reading tags"
tag = fileref.tag
self.title = tag.title
self.artist = tag.artist
properties = fileref.audio_properties
self.length = properties.length
end
end
self.save!
end
首先,我以爲下載的文件可能已損壞,但檢查鸚鵡螺元數據顯示確定結果和Rhythmbox音樂播放器可以播放它。 我想使用taglib-ruby的基本API而不是格式特定的API,因爲我只需要檢索藝術家和標題,但需要能夠從各種格式的文件中獲取它。
有沒有人有任何想法如何解決這個問題?這可能是我錯過了一些超級明顯的東西,因爲我是這個主題的新手。
編輯:考慮robinst's comment,這是ls -l
上市的各個文件的:
-rw-rw-r-- 1 user user 3710598 Jun 3 15:56 01 - Paradise.mp3
-rw-rw-r-- 1 user user 3731496 Jun 3 15:56 02 - Weirdo.mp3
-rw-rw-r-- 1 user user 3620319 Jun 3 15:56 03 - As It Is When It Was.mp3
-rw-rw-r-- 1 user user 3645815 Jun 3 15:56 04 - Broken Promise.mp3
-rw-rw-r-- 1 user user 3954295 Jun 3 15:56 05 - Way Of Life.mp3
-rw-rw-r-- 1 user user 4199193 Jun 3 15:57 06 - Bizarre Love Triangle.mp3
-rw-rw-r-- 1 user user 5002092 Jun 3 15:57 07 - All Day Long.mp3
-rw-rw-r-- 1 user user 3595686 Jun 3 15:57 08 - Angel Dust.mp3
-rw-rw-r-- 1 user user 4307888 Jun 3 15:57 09 - Every Little Counts.mp3
-rw-rw-r-- 1 user user 6313648 Jun 3 15:57 10 - State Of The Nation.mp3
有問題的文件是否有特殊的文件名?另外,請檢查文件權限。 – robinst
名稱在所有文件中都是一致的,例如'01 - 曲目title.mp3'。文件名中沒有特殊字符。文件權限是「-rw-rw-r - 」,並且對於所有文件也是相同的。 – kah