我建立一个纯Ruby WAV文件的读/写库,学习更深的Ruby的功能,我去。目前,它拥有16-bit的音频效果很好,因为我能够使用String.unpack('s*')拉个人音频采样伸到符号整数数组。我无法包裹我的脑海里围绕着如何去处理24位音频,但是。在这种情况下,每个样本是3个字节长。什么包/解包串,你会在这种情况下建议,我将很可能不得不彻底改变我的做法(使用填充或类似的东西)?

有帮助吗?

解决方案

当你使用unpack("s+"),我想你的样品是大端。这是一个不那么快,但可行的解决方案。

>> "ABCDEF".scan(/.../).map {|s| (s.reverse + 0.chr ).unpack("V")}.flatten
=> [4276803, 4474182]    #=> [0x414243, 0x444546] in HEX
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top