2016-11-30 12 views
1

У меня есть приложение, которое требует точного контроля уровня выходного сигнала горелки. Уровень устанавливается с помощью этой функции:Дискретный контроль яркости факела на iPhone через AVCapture

setTorchModeOnWithLevel(_:)

Функция запрашивает для непрерывного поплавка между 0 и 1, но только кажется, имеет 4 различных уровней выходного сигнала от 0 - 1.

Правильно ли это? Я не могу найти документацию о том, является ли изменение непрерывным или дискретным во всем диапазоне ввода.

+0

Возможно, они выполняют некоторые условия. – DeyaEldeen

ответ

1

Как базовая ОС и оборудование интерпретируют значение уровня фонаря, которое вы передаете, являются детальностью реализации. Другими словами, ценность лучше всего понимается как просто консультация к базовой системе с величиной, имеющей значение только при сравнении с самим собой. То есть вы можете ожидать, что 1,0 будет ярким или ярким, чем 0,5, но только на том же аппаратном обеспечении и той же версии ОС. (Например, максимальная яркость на iPhone 7 ярче, чем на iPhone 6.) И API не дает никаких гарантий относительно того, сколько дискретных уровней яркости поддерживает базовая система.

(Кроме того, поплавки не являются непрерывными. Хорошо, существует около 100 миллионов дискретных значений между 0.0 и 1.0, не считая субнормальных чисел, что достаточно гладко для многих случаев использования ... но определенно не то же самое, .)

+0

Спасибо за ответ. Я новичок в разработке для iPhone, и я просто удивлен, что нет документации, подтверждающей это! Насколько мне известно, нет такой вещи, как по-настоящему непрерывный формат данных, но поплавки/удваиваются ближе всего. Я просто ожидал гораздо большей детализации! – aforward