Когда мы используем AVCaptureOutput
, мы заметили, что аудиоданные и данные изображения поступают последовательно. Чтобы получить информацию о громкости звука, не вызывая ошибки, мы обнаружили! используя следующий фрагмент кода:
if output.connections[0].audioChannels.count > 0 {} else {}
Мы думаем, что может быть лучше.
func captureOutput(_ output: AVCaptureOutput,
didOutput sampleBuffer: CMSampleBuffer,
from connection: AVCaptureConnection) {
if output.connections[0].audioChannels.count > 0 {
let volume = connection.audioChannels[0].averagePowerLevel
} else {
// Codes for video
}
}