Там используется анализ интенсивности освещения, измеряемый камерой. Запишите видео, выделите каким-нибудь видеоредактором только канал интенсивности и «растяните» его динамический диапазон до максимума. Получите пульсирующую картинку. Посчитав период пульсаций — сможете определить частоту сердцебиения.
Для ускорение обработки там используется очень низкое разрешение изображений, снимаемых с камеры, по которым считается моментальное значение интенсивности, усреднённое по всему кадру плюс анализ по типу «плывущего окна», определяющий конкретный текущий минимум и максимум уровня. Далее, считается интервал между максимальными изменениями уровня — он и будет частотой сердцебиения с достаточно приличной точностью.
Это только вкратце, возможно, разработчики тех приложений применили какой-то более интересный алгоритм.
Микрофоном снять шум сердечных сокращений практически нереально (слишком много внешних помех). Акселерометр тоже вряд ли сможет настолько точно отслеживать перемещения.
Кстати, такие приборчики и раньше делали при помощи лампочки и фотодиода (можете поискать схемы в журналах «Радио»), они работали именно посредством измерения интервала изменения интенсивности светового потока.