- PVSM.RU - https://www.pvsm.ru -
Камеры мобильных устройств Android/iOS/etc. при фотосъёмке издают характерный звук срабатывания затвора. В некоторых странах это требуется законодательно. Но что делать, если нашей программе нужно всё-таки беззвучно снять фотографию, пусть даже незаметно для пользователя? Такой способ есть.

Пользователь Хабрахабра k06a [1] (Антон Буков) на Stackoverflow предложил универсальный способ [2], который должен работать на всех платформах. Он предлагает использовать активное шумоподавление, то есть инвертировать звук и запустить инвертированную копию непосредственно перед оригинальной. Мы получаем абсолютно беззвучную фотосъёмку!
K06a объясняет на примере iOS.
1. Записываем системный звук затвора с помощью программы iOSSystemSoundsLibrary [3].
2. Извлекаем файл photoShutter.caf из папки Documents, можно использовать DiskAid for Mac.
3. Открываем photoShutter.caf в звуковом редакторе (Audacity) и применяем инвесрсию.
4. Сохраняем получившийся звук в iOS и запускаем непосредственно перед captureStillImageAsynchronouslyFromConnection.
static SystemSoundID soundID = 0;
if (soundID == 0) {
NSString *path = [[NSBundle mainBundle] pathForResource:@"photoShutter2" ofType:@"caf"];
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)filePath, &soundID);
}
AudioServicesPlaySystemSound(soundID);
[self.stillImageOutput captureStillImageAsynchronouslyFromConnection:
...
Антон уверяет, что работает отлично.
Если что, то уже инвертированный photoShutter2.caf можно взять здесь [4] (зеркало [5]).
Автор:
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mobile-development/60657
Ссылки в тексте:
[1] k06a: http://habrahabr.ru/users/k06a/
[2] универсальный способ: http://stackoverflow.com/questions/23758875/capture-image-via-capturestillimageasynchronouslyfromconnection-with-no-shutter
[3] iOSSystemSoundsLibrary: https://github.com/TUNER88/iOSSystemSoundsLibrary
[4] здесь: https://www.dropbox.com/s/1echsi6ivbb85bv/photoShutter2.caf
[5] зеркало: https://mega.co.nz/#!W1Z2jSST!Rx9cxUcDUWxDOvutt0liJFysw5vrTZa80qwPdsr93QU
[6] Источник: http://habrahabr.ru/post/224055/
Нажмите здесь для печати.