Чтобы получить доступ к каждому AudioBuffer
в AudioBufferList
в Swift, вы можете выбрать два способа:
- Выполнить некоторые операции с указателями самостоятельно и рассчитать каждый адрес
AudioBuffer
. - Используйте
UnsafeMutableAudioBufferListPointer
принудительно.
Если вы могли найти правильный пример кода до того, как UnsafeMutableAudioBufferListPointer
был введен в Swift, первым вариантом может быть ваш вариант, но на данный момент трудно найдите один.
Чтобы использовать UnsafeMutableAudioBufferListPointer
принудительно, вам может потребоваться преобразовать UnsafePointer<AudioBufferList>
в UnsafeMutablePointer<AudioBufferList>
, что не так уж сложно:
let audioBufferListPtr = UnsafeMutableAudioBufferListPointer(UnsafeMutablePointer(mutating: audioBufferList))
Я вам верю знать, как получить доступ к буферам, как только вы получите UnsafeMutableAudioBufferListPointer
.
Внимание: Даже если преобразование типов из UnsafePointer<AudioBufferList>
в UnsafeMutablePointer<AudioBufferList>
выполняется легко, фактическая область проходит через audioBufferList
не является изменчивым Вам может потребоваться дополнительная осторожность, чтобы не мутировать такой регион.