cuốn sách gpt4 ai đã làm

ios - Nghe AVAudioPCMBuffer

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 00:35:43 31 4
mua khóa gpt4 Nike

Tôi đã đạt được cài đặtTap phương pháp cung cấp cho tôi ví dụ về dấu phẩy động của bộ đệm âm thanh. Tôi đã lọc chúng thông qua thư viện C++ DSP của mình. Tôi muốn "gửi" bộ đệm này tới tai nghe/loa. Tôi đã làm lại từ ví dụ Bộ đệm AVAudioPCM. Có ai biết cách thực hiện việc này không?

Mã số:

node.installTap(onBus: bus, bufferSize: AVAudioFrameCount(BUFFER_SIZE), định dạng: node.inputFormat(forBus: bus), block: { (buffer : AVAudioPCMBuffer ,time : AVAudioTime) in

hãy root = buffer.floatChannelData!.pointee


// Con trỏ đầu tiên định nghĩa các kênh
// Con trỏ thứ hai xác định giá trị float

cho tôi trong 0 ..< BUFFER_SIZE{
self.signalData[i] = Double(root.advanced(by: i).pointee) * self.gainCorrection
}
đặt signalDataPreEq = self.signalData

let filterSignal = Shared.EQ.filterBuffer(UnsafeMutablePointer(mutating: self.signalData), with_count: Int32(BUFFER_SIZE))

self.signalData = Array(UnsafeBufferPointer(bắt đầu :filterSignal, count : BUFFER_SIZE))

cho tôi trong 0 ..< BUFFER_SIZE{
root.advanced(by: i).pointee = Float(self.signalData[i])
}
// TẠI ĐÂY TÔI MUỐN NGHE (PHÁT LẠI) ÂM THANH TỪ BỘ ĐỆM

Cảm ơn

câu trả lời hay nhất

Bạn có thể sử dụng Nút AVAudioPlayer để chơi của bạn Bộ đệm AVAudioPCM:

hãy để người chơi = AVAudioPlayerNode()
engine.attach(người chơi)

hãy để xe buýt = 0
hãy để inputFormat = node.inputFormat(forBus: bus)
engine.connect(player, tới: engine.mainMixerNode, định dạng: inputFormat)

node.installTap(...) {
// những thứ khác
player.scheduleBuffer(filteredSignal) // FilterSignal có phải là AVAudioPCMBuffer của bạn không?
}

// động cơ.start()

player.play()

Về ios - nghe AVAudioPCMBuffer, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/43820432/

31 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress