मोबाइल डिवाइस के कैमरे में सक्रिय शटर शोर में कमी

मोबाइल कैमरा Android / iOS / आदि। शूटिंग के दौरान, वे एक विशिष्ट शटर ध्वनि का उत्सर्जन करते हैं। कुछ देशों में यह कानून द्वारा आवश्यक है। लेकिन क्या होगा अगर हमारे कार्यक्रम को अभी भी चुपचाप एक तस्वीर लेने की आवश्यकता है, भले ही वह उपयोगकर्ता के लिए अदृश्य हो? ऐसा एक तरीका है।



Stackoverflow पर Habrahabr k06a (एंटोन बुकोव ) के उपयोगकर्ता ने एक सार्वभौमिक तरीका प्रस्तावित किया जो सभी प्लेटफार्मों पर काम करना चाहिए। वह सक्रिय शोर में कमी का उपयोग करने का सुझाव देता है, अर्थात् ध्वनि को उल्टा करता है और मूल से ठीक पहले उलटा प्रतिलिपि शुरू करता है। हमें बिल्कुल मूक फोटोग्राफी मिलती है!

k06a iOS के उदाहरण के बारे में बताता है।

1. सिस्टम शटर ध्वनि रिकॉर्ड करें। जिस पथ के साथ फ़ाइल सिस्टम में झूठ लगता है वह iOSSystemSoundsLibrary कोड में पाया जा सकता है।

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]; 

2. photoShutter.caf दस्तावेज़ फ़ोल्डर से photoShutter.caf फ़ाइल photoShutter.caf , आप मैक के लिए DiskAid का उपयोग कर सकते हैं।

3. साउंड एडिटर (धृष्टता) में photoShutter.caf खोलें और इन्वेंट्री लागू करें।

4. आईओएस में परिणामी ध्वनि को बचाएं और 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 यहां ( दर्पण ) लिया जा सकता है।

Source: https://habr.com/ru/post/In224055/


All Articles