Как сделать 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.

Я знаю, что такого метода не существует, не нужно писать это в ответах. Вопрос скорее про то как это решить? У меня была идея допустим брать поинтер на дату и записывать в файл и потом читать с файла, но это выглядит совсем криво.


Ответы (0 шт):