我一直在使用Superpowered iOS库来分析音频并提取BPM,响度,音高数据。我正在开发一个iOS Swift 3.0项目,并且已经能够使用ObjC的桥接头来使C类与Swift一起工作。通过BPM将音轨分割为多个分段,并使用超能力iOS分析每个分段
我遇到的问题是,虽然我可以创建一个解码器对象,从音乐库中提取音频并将其存储为一个.WAV - 我无法创建一个解码器对象只是提取音频的片段和获取分析器类来返回数据。
我的方法是创建一个解码器对象,如下所示:
var decodeAttempt = decoder!.open(self.originalFilePath, metaOnly: false, offset: offsetBytes, length: lengthBytes, stemsIndex: 0)
“offsetBytes”和“lengthBytes的”我想是音频文件中的位置。由于我已经解压缩音频,将其存储为WAV,然后将其提供给解码器,因此我正在使用每秒44100 x 2 x 16/8 = 176400字节的PCM Wave音频公式计算偏移量和长度。然后用它来指定一个起始点和长度(以字节为单位)。我不确定这是否正确,因为解码器将返回'未知文件格式'。
任何想法或甚至如何实现这个问题的标题替代建议?提前致谢!
感谢加博尔 - 我最初有同样的想法,但当我看到'偏移量,长度'参数,并假设它是与WAV文件做的时候,我一直在想 - 我会尝试你的建议! –