Как получить мощность аудио буфера с помощью The Amazing Audio Engine
Я довольно новичок в разработке для iOS, и я новичок в аудио-вещании.
Я пытаюсь получить громкость или мощность звука, воспроизводимого с помощью TAAE. Я не уверен, имеет ли смысл то, что я делаю.
Вот мой код
static var gameStatus : GameStatus = .Starting
private init(){
audioController = AEAudioController(audioDescription: AEAudioController.nonInterleavedFloatStereoAudioDescription())
initializeAudioTrack()
}
func initializeAudioTrack() {
let file = NSBundle.mainBundle().URLForResource("01 Foreign Formula", withExtension:
"mp3")
let channel: AnyObject! = AEAudioFilePlayer.audioFilePlayerWithURL(file, audioController: audioController, error: nil)
let receiver = AEBlockAudioReceiver { (source, time, frames, audioBufferList) -> Void in
let leftSample = UnsafeMutablePointer<Float>(audioBufferList[0].mBuffers.mData)
let rightSample = UnsafeMutablePointer<Float>(audioBufferList[1].mBuffers.mData)
var accumulator = Float(0.0)
for i in 0...frames {
accumulator += leftSample[Int(i)] * leftSample[Int(i)]
}
var power = accumulator / Float(frames)
println(power)
}
println(audioController?.masterOutputVolume)
audioController?.addChannels([channel])
audioController?.addOutputReceiver(receiver)
audioController?.useMeasurementMode = true
audioController?.preferredBufferDuration = 0.005
audioController?.start(nil)
}
Я искал повсюду, пытаясь понять, как это сделать, но мне довольно трудно понять, что я должен искать.
По сути, все, что мне нужно, это найти силу звука (интенсивность, басы и т. Д.), Чтобы определять и манипулировать определенными вещами в игре, которую я создаю.
Я действительно хотел бы любого объяснения или помощи.
Не стесняйтесь писать код в Objective-C или другом