lib/nu_wav.rb in nu_wav-0.1.0 vs lib/nu_wav.rb in nu_wav-0.2.0

- old
+ new

@@ -76,13 +76,18 @@ end def duration fmt = @chunks[:fmt] - if fmt && (fmt.compression_code.to_i == PCM_COMPRESSION) - @header.size / (fmt.sample_rate * fmt.number_of_channels * (fmt.sample_bits / 8)) + if (fmt.compression_code.to_i == PCM_COMPRESSION) + data = @chunks[:data] + data.size / (fmt.sample_rate * fmt.number_of_channels * (fmt.sample_bits / 8)) + elsif (fmt.compression_code.to_i == MPEG_COMPRESSION) + # <chunk type:fact samples_number:78695424 /> + fact = @chunks[:fact] + fact.samples_number / fmt.sample_rate else - raise "Duration implemented for WAV files only." + raise "Duration implemented for PCM and MEPG files only." end end def to_s out = "NuWav:#{@header}\n" \ No newline at end of file