Следующий код работает для аудиофайлов небольшой продолжительности на всех моих устройствах (iPhone, Apple Watch, Simulator):
let file = try! AVAudioFile(forReading: url!)
let format = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: file.fileFormat.sampleRate, channels: file.fileFormat.channelCount, interleaved: false)
let buf = AVAudioPCMBuffer(pcmFormat: format!, frameCapacity: UInt32(file.length))
try! file.read(into: buf!)
Сбой происходит в try! file.read(into: buf!)
Однако попытка прочитать, например, 5-минутный аудиофайл вызывает сбой на моих Apple Watch (хотя работает на симуляторе Apple Watch). С Program ended with exit code: 0
.
Глядя на инструменты отладки, очевидно, что этот процесс гораздо более утомительный для Apple Watch, чем для iPhone. Я пытался запустить его в разных потоках, в фоновом режиме и т. д., но безрезультатно.
Я знаю, что могу отправить буфер на iPhone для обработки, однако я хотел бы посмотреть (даже если это займет немного больше времени), смогу ли я прочитать буфер строго с часов.