Переопределить Spotify Audio в SPTCoreAudioController с помощью SoundTouch
Я использую Spotify SDK в iOS Project, и я намерен переопределить аудио Spotify с помощью SoundTouch https://www.surina.net/soundtouch/
Итак, я импортирую свою библиотеку SoundTouch в мои проекты, я создаю оболочку Objective-C++ для своего кода Swift, и это удалось.
Однако, когда я пытаюсь переопределить spotify Audio, изменяя темп в функции SPTCoreAudioController ( https://developer.spotify.com/ios-sdk-docs/Documents/Classes/SPTCoreAudioController.html), звук становится беспорядочным.
Вот мой код:
override func attempt(toDeliverAudioFrames audioFrames: UnsafeRawPointer!, ofCount frameCount: Int, streamDescription audioDescription: AudioStreamBasicDescription) -> Int {
let ptr = audioFrames.bindMemory(to: Int16.self, capacity: frameCount)
let framePtr = UnsafeBufferPointer(start: ptr, count: frameCount)
let frames = Array(framePtr)
if soundTouch == nil {
print("initialize soundTouch")
soundTouch = SoundTouchWrapper()
soundTouch.setSampleRate(uint(audioDescription.mSampleRate))
soundTouch.setChannels(audioDescription.mChannelsPerFrame)
soundTouch.setTempo(1.5)
}
soundTouch.putSamples(UnsafeMutablePointer(mutating: ptr), uint(frameCount)/soundTouch.numChannels())
var written:UInt32 = 0
let capacity = 1024
let bufferPtr = UnsafeMutablePointer<Int16>.allocate(capacity: capacity)
repeat {
written = soundTouch.receiveSamples(bufferPtr, uint(capacity)/soundTouch.numChannels())
super.attempt(toDeliverAudioFrames: bufferPtr, ofCount: Int(written), streamDescription: audioDescription)
} while written > 0
return frameCount
}
Есть идеи, что я здесь делаю не так?