Я пишу свое приложение iOS для записи звука.
Я вызвал session.setPreferredIOBufferDuration (0,001), чтобы установить продолжительность, и записал интервалы между двумя обратными вызовами.
Это данные моего iPhone 8:
max = 198 avg = 2.75314 min = 0
======================================================
4 2 2 3 5 3 1 3 6 1
2 2 6 0 5 3 1 3 3 5
1 3 3 2 3 5 1 3 3 3
3 4 1 4 3 2 4 2 3 3
3 3 3 3 2 3 3 3 5 1
3 2 3 3 3 3 3 5 1 3
3 3 3 3 3 3 4 1 3 3
3 3 3 2 3 4 2 3 3 3
3 4 5 0 2 3 3 3 3 3
3 3 3 3 2 3 4 2 3 3
3 3 3 3 3 3 4 2 2 4
3 2 4 2 3 2 4 3 4 2
2 3 3 3 3 2 4 3 5 1
2 4 2 3 2 3 4 3 3 2
4 5 1 2 3 4 2 4 1 3
3 3 3 5 2 2 2 4 2 3
3 3 3 6 0 3 3 3 2 3
3 3 4 2 3 3 2 3 3 3
3 3 3 3 5 1 2 3 3 3
3 3 4 4 1 2 3 3 4 2
3 3 3 3 3 2 3 6 0 3
3 3 4 2 3 3 3 2 5 1
И это данные моего iPhone 7:
max = 246 avg = 2.59249 min = 0
======================================================
3 2 3 2 3 3 5 2 2 3
3 3 3 4 2 2 3 3 3 3
221 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 2 0 0 0
0 0 0 0 0 0 0 1 7 1
1 3 2 3 3 3 3 2 4 4
1 3 4 2 3 3 5 4 0 2
3 5 2 3 2 3 3 4 2 3
2 6 0 4 2 3 3 3 4 3
1 3 3 3 5 3 1 3 3 2
, как видите, максимальный интервал далек от 1 мс, установленного на AudioSession
. и огромные числа формы iPhone 7 появляются очень часто.
Почему iOS не перезванивают мой обратный вызов? Могу ли я сделать что-нибудь, например, установить некоторые предпочтения, чтобы получить более гладкие данные?
Спасибо.