class DragonflyAudio::Analysers::AudioProperties

Constants

AUDIO_PROPS
TAGS

Public Instance Methods

call(content) click to toggle source
# File lib/dragonfly_audio/analysers/audio_properties.rb, line 11
def call(content)
  return {} unless content.ext
  return {} unless SUPPORTED_FORMATS.include?(content.ext.downcase)

  res = {}

  TagLib::FileRef.open(content.path) do |fileref|
    return if fileref.null?
    TAGS.each { |n| res[n] = fileref.tag.send(n) }
    AUDIO_PROPS.each { |n| res[n] = fileref.audio_properties.send(n) }
  end
  
  res["length"] = res["length_in_seconds"]

  res
end