AudioQueueRef перехватывает аудиоданные для создания визуализатора музыки (или AVAudioEngine или AudioEngine из AudioKitIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 AudioQueueRef перехватывает аудиоданные для создания визуализатора музыки (или AVAudioEngine или AudioEngine из AudioKit

Сообщение Anonymous »

Я хочу интегрировать FFTView из AudioKit в свое приложение, чтобы показать этот классный визуализатор.
Проблема, с которой я столкнулся, заключается в том, что воспроизводимый мной звук взят из библиотеки 2014 года ( TritonSDK), который откуда-то передает аудио, чтобы предоставить вам радиостанцию ​​для прослушивания. Поэтому у меня нет никакого контроля над звуком, все обрабатывается SDK.
Однако SDK предоставляет свойство AudioQueueRef, но судя по тому, что я вижу в документации Apple , на него невозможно подписаться на аудиоданные, если вы не контролируете создание очереди.
Поэтому я подумал, план Б: использовать AVAudioEngine для подбора звука он уже воспроизводится, но, к сожалению, я не получаю никаких данных для визуализатора (я получаю массив значений с плавающей запятой с нулевым значением)
Есть идеи, что я делаю неправильно, или это даже возможно, что я пытаюсь? Заранее спасибо!
Мои настройки:
import AudioKit
import AVFAudio

final class AudioCapture: ObservableObject {
@Published private(set) var node: Node

private let engine = AVAudioEngine()

init() {
self.node = NodeWrapper(avAudioNode: engine.mainMixerNode)
}

func start() {
do {
try engine.start()
} catch {
print("Error starting AVAudioEngine: \(error.localizedDescription)")
}
if node.avAudioNode != engine.mainMixerNode {
node = NodeWrapper(avAudioNode: engine.mainMixerNode)
}
}

func stop() {
engine.stop()
}
}

// MARK: - Utility

private final class NodeWrapper: Node {
var connections: [Node] = []
let avAudioNode: AVAudioNode

init(avAudioNode: AVAudioNode) {
self.avAudioNode = avAudioNode
}
}

import SwiftUI
import AudioKitUI

struct RadioView: View {
@ObservedObject var viewModel: RadioViewModel
@Environment(\.safeAreaInsets) private var safeAreaInsets: EdgeInsets

var body: some View {
FFTView(viewModel.audioCapture.node)
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... udioengine
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»