- 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/