使用RubyAudio的音频文件的长度(例如.wav)

时间:2011-06-24 20:55:47

标签: ruby

如何使用RubyAudio确定音频文件(例如.wav)的长度(以毫秒为单位)

s = RubyAudio::Sound.open("1.wav")

3 个答案:

答案 0 :(得分:2)

您可以通过以下方式获取SongInfo:

songInfo = s.info

然后歌曲信息包含采样率和可用于计算声音文件持续时间的帧数:

duration = songInfo.frames / songInfo.samplerate

答案 1 :(得分:0)

从粗略看一下文档,看起来你不能用RubyAudio做到这一点。

您是否尝试过查看ruby-mp3info?我不知道它是否仍然在积极开发,也不知道它是否适用于多种音频格式,但它声称能够为你提供mp3的持续时间。

另一种方法是根据比特率和文件长度进行估算。

答案 2 :(得分:0)

RubyAudio似乎在六年内没有更新,其文档很少。如果您能够我建议改为使用rtaglib

但是,如果您与RubyAudio结婚,看起来您可以获得帧数(Audio::Soundfile#frames)和样本(帧)速率(Audio::Soundfile#samplerate)。知道这一点,你应该能够按采样率划分帧数,以秒为单位得到文件的长度。