我正在编写一个音乐平台应用程序。我希望通过元数据获取mp3的持续时间,并在上传到S3之前将其保存在表中。
我使用carrierwave和fog gem的组合进行上传。有没有推荐的方法来提取mp3元数据以保存到数据库?
我正在编写一个音乐平台应用程序。我希望通过元数据获取mp3的持续时间,并在上传到S3之前将其保存在表中。
我使用carrierwave和fog gem的组合进行上传。有没有推荐的方法来提取mp3元数据以保存到数据库?
有一个用于此类操作的宝石 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