如何使用RubyAudio确定音频文件(例如.wav)的长度(以毫秒为单位)
s = RubyAudio::Sound.open("1.wav")
答案 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
)。知道这一点,你应该能够按采样率划分帧数,以秒为单位得到文件的长度。