0

ドロップボックスフォルダーから曲をダウンロードし、いくつかのメタタグを抽出するなど、いくつかのアクションを実行するルビーオンレールアプリを実装しています。現在、同じアルバムに属する 10 個の mp3 を使用しているため、エンコードなどは同じです。ただし、taglib-rubyを使用してメタタグを読み取ろうとすると、10 個のファイルのうち 3 個で次のようにエラーがスローされます。

TagLib: FileRef::tag() - Called without a valid file.
TagLib: FileRef::audioProperties() - Called without a valid file.

ここで左側にあるコードをガイドとして使用したところ、次のようになりました。

  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

最初はダウンロードしたファイルが壊れているのではないかと思いましたが、nautilus でメタデータを確認すると問題なく、Rhismbox でも再生できます。アーティストとタイトルを取得する必要があるだけで、さまざまな形式のファイルから取得できるようにする必要があるため、形式固有のものではなく、taglib-ruby の Basic API を使用したいと考えています。

これを修正する方法はありますか?私がこのトピックに関して初心者であることを考えると、非常に明白な何かが欠けている可能性があります。

編集:ロビンストのコメントを考慮して、これは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
4

1 に答える 1

0

この質問は、taglib-ruby の issue 33としても出され、そこで回答されました。つまり、ファイルが壊れていることが判明しました。

于 2013-06-10T07:35:37.590 に答える