我一直在使用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文件做的時候,我一直在想 - 我會嘗試你的建議! –