在使用carrierwave上传到S3时获取mp3持续时间

5

我正在编写一个音乐平台应用程序。我希望通过元数据获取mp3的持续时间,并在上传到S3之前将其保存在表中。

我使用carrierwave和fog gem的组合进行上传。有没有推荐的方法来提取mp3元数据以保存到数据库?

1个回答

2

有一个用于此类操作的宝石 taglib-ruby

以下是一个示例

  def set_duration
    # :duration is an integer
    # t.integer  "duration",                  :default => 0
    TagLib::FileRef.open(file.file.path) do |file|
      update_column(:duration, file.audio_properties.length) unless file.null?
    end
  end 

当然,您可能有自己的属性名称,但通常应该有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接