Значения счетчика AVAudioPlayer по-прежнему — 160

#objective-c #avaudioplayer #metering

#objective-c #avaudioplayer #измерение

Вопрос:

Пытаюсь реализовать AVAudioPlayer и получить некоторые данные замера воспроизводимой музыки, но по-прежнему получаю значение -160. Это выглядит простым в использовании, просто включите счетчик, а затем снимайте данные по таймеру, но пока никаких результатов.

playerAV = [[Выделение AVAudioPlayer] initWithContentsOfURL: ошибка вывода: ноль];
 playerAV.delegate = self;


 playerAV.meteringEnabled = ДА;

 [playerAV prepareToPlay];
 [Воспроизведение в режиме воспроизведения];

NSLog (@"Пик слева: % f Среднее значение справа: % f", [Максимальная мощность для канала playerAV: 0], [Средняя мощность для канала playerAV: 1]);

любые мысли приветствуются.

Ответ №1:

Ты звонишь updateMeters ? В документах для обоих peakPowerForChannel: и averagePowerForChannel: говорится:

Чтобы получить текущее значение […], вы должны вызвать updateMeters метод перед вызовом этого метода.

Ответ №2:

Откуда вы знаете, что URL работает, и данные в конце его имеют правильный формат? Вы слышите звук, доносящийся из динамиков?

Вы каким-то образом создаете два объекта playerAV, один с правильным URL, который воспроизводится, другой с неправильным URL, который ничего не воспроизводит, и именно его видит таймер при вызове NSLog ()?