func loadSoundfont(_ pitch : String) { let path: String = Bundle.main.path(forResource: "\(self.id)/\(pitch)",ofType: "f32")! let url = URL(fileURLWithPath: path) do { let file = try AVAudioFile(forReading: url,commonFormat: AVAudioCommonFormat.pcmFormatFloat32,interleaved: true) let format = file.processingFormat let capacity = AVAudioFrameCount(file.length) self.buffer = AVAudioPCMBuffer(pcmFormat: format,frameCapacity: capacity) try file.read(into: self.buffer!) } catch let error as NSError { print("ERROR HERE",error.localizedDescription) } }
func loadSoundfont(_ pitch : String) { let path: String = Bundle.main.path(forResource: "\(self.id)/\(pitch)",ofType: "f32")! let url = URL(fileURLWithPath: path) do { let data = try Data(contentsOf: url) let format = AVAudioFormat(commonFormat: .pcmFormatFloat32,sampleRate: 44100,channels: 2,interleaved: true) self.buffer = AVAudioPCMBuffer(pcmFormat: format,frameCapacity: AVAudioFrameCount(data.count)) self.buffer!.floatChannelData!.pointee.withMemoryRebound(to: UInt8.self,capacity: data.count) { let stream = OutputStream(toBuffer: $0,capacity: data.count) stream.open() _ = data.withUnsafeBytes { stream.write($0,maxLength: data.count) } stream.close() } } catch let error as NSError { print("ERROR HERE",error.localizedDescription) } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。