SORU
9 Aralık 2010, PERŞEMBE


Deklanşör sesi devre dışı bırakmak için nasıl AVFoundation, ne zaman captureStillİmageAsynchronouslyFromconnection?

Kamera, AVFoundation tarafından captureStillImageAsynchronouslyFromConnection Canlı Önizleme sırasında fotoğraf çekmek için çalışıyorum. Şimdiye kadar program beklendiği gibi çalışır. Ancak, ne deklanşör sesi kapatmak.

CEVAP
20 Mayıs 2014, Salı


Bu kodu bir kere iOS varsayılan deklanşör sesi (ses dosya adları https://github.com/TUNER88/iOSSystemSoundsLibrary işte liste) yakalamak için kullanılır:

NSString *path = @"/System/Library/Audio/UISounds/photoShutter.caf";
NSString *docs = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSData *data = [NSData dataWithContentsOfFile:path];
[data writeToFile:[docs stringByAppendingPathComponent:@"photoShutter.caf"] atomically:YES];

Sonra üçüncü taraf Belgeleri photoShutter.caf ayıklamak için uygulama dizini (Mac İçin) kullandım. Bir sonraki adım Küstahlık audio photoShutter.caf açtım ve etkisi ters uygulanan, yüksek zoom: bu gibi görünüyor

enter image description here

O photoShutter2.caf Bu ses kurtardım ve sağ captureStillImageAsynchronouslyFromConnection önce: bu ses çalmak için çalıştı

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:
...

Ve bu gerçekten işe yarıyor! Test birkaç kez, hiçbir deklanşör sesi:) duyduğum her zaman çalışır

Zaten ses ters, iPhone 5S iOS 7.1.1 bu linkten çekilen: https://www.dropbox.com/s/1echsi6ivbb85bv/photoShutter2.caf

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • mipd1980

    mipd1980

    25 EKİM 2006
  • RD

    RD

    19 NİSAN 2006