Как сделать offset на AVAudioPCMBuffer?
У меня есть AVAudioPCMBuffer, который используется для AVAudioPlayerNode для воспроизведения
internal func play() {
guard let buf = pcmBuf else {
logger?.log(severity: .error, msg: "Sound pcmBuf is nil.")
return
}
if !isPlaying {
player.scheduleBuffer(buf, at: nil, options: .loops)
player.play()
}
}
Мне нужно сделать, чтоб была возможность seek() вперед, я кажется, что это должно быть сделано с помощью offset на AVAudioPCMBuffer, вроде такого
internal func play() {
guard let buf = pcmBuf else {
logger?.log(severity: .error, msg: "Sound pcmBuf is nil.")
return
}
buf.offset = 10 // Eg: in sec
if !isPlaying {
player.scheduleBuffer(buf, at: nil, options: .loops)
player.play()
}
}
то есть берем дату которая уже есть говорим сделай офсет на 10 секунд и установи заново, но нет такого метода offset
Как это сделать?
P.S.
То есть флоу такой native lib -> UnsafeRawPointer -> convert in pcm buf -> use in the node
P.P.S.
Я знаю, что такого метода не существует, не нужно писать это в ответах. Вопрос скорее про то как это решить? У меня была идея допустим брать поинтер на дату и записывать в файл и потом читать с файла, но это выглядит совсем криво.