这似乎更像是一个数学问题。
音频文件的长度为L
秒。我们想把它分成相等长度的c
秒。每个下一个块应该具有ø
秒与前一个块的重叠。
我们可以分割这个文件多少块(N
)?剩余的最后一个块r
有多长时间(如果整个文件不能以这种方式划分而没有余数)?
例1:
L
= 12s,c
= 4s,ø
= 1s。
结果:长度c
的块数是N
= 3,剩余的最后块长度r
= 3s
Simple image to illustrate this example
没有重叠找到块的数量,其余部分就像N = L / s
和r = L % s
一样容易。但是我不能用重叠来提出这个问题的公式或代码。任何帮助,将不胜感激。谢谢。
N块给出了长度:
Len = N * (C - F) + F
因此,要获得未切割块的数量,我们应该划分:
K = (L - F) / (C - F)
最后一个块长度(如果非零)是
if ((L - F) % (C - F) > 0)
LastLen = L - K * (C - F)
例子:
L = 12 C = 4 F = 1
K = (12 - 1) / (4 - 1) = 3
(12 - 1) % (4 - 1) > 0, so
LastLen = 12 - 3 * 3 = 3
L = 8 C = 5 F = 2
K = (8 - 2) / (5 - 2) = 2
(8 - 2) % (5 - 2) = 0, so
LastLen = 0