निम्नलिखित कोड Apple's Sample AVRecorder
से खींचा गया है ... इस विशेष कोड को इस वर्ग की फिल्मफाइलऑटपुट के कनेक्शन विधियों से कनेक्शन का एक सेट प्राप्त होता है, प्रत्येक कनेक्शन के लिए AVCaptureAudioChannel प्राप्त करता है, और उस पर आधारित डेसिबल पावर की गणना करता है। मुझे लगता है कि यदि आप "शोर स्तर" आउटपुट की तलाश में हैं, तो आप समान जानकारी को कैप्चर करने में सक्षम होंगे। यदि आप इससे कम स्तर की तलाश में हैं, तो एचएएल (हार्डवेयर एब्स्ट्रक्शन लेयर) ढांचे का प्रयास करें।
- (void)updateAudioLevels:(NSTimer *)timer
{
NSInteger channelCount = 0;
float decibels = 0.f;
// Sum all of the average power levels and divide by the number of channels
for (AVCaptureConnection *connection in [[self movieFileOutput] connections]) {
for (AVCaptureAudioChannel *audioChannel in [connection audioChannels]) {
decibels += [audioChannel averagePowerLevel];
channelCount += 1;
}
}
decibels /= channelCount;
[[self audioLevelMeter] setFloatValue:(pow(10.f, 0.05f * decibels) * 20.0f)];
}
स्रोत
2012-08-13 05:37:10
क्या रूपांतरण नहीं होना चाहिए (10.f, 0.05f * decibels)? आपको वहां उस अतिरिक्त समय की आवश्यकता नहीं है। यहां पढ़ें: http://stackoverflow.com/questions/2465328/iphone-sdk-avaudiorecorder-metering-how-to-change-peakpowerforchannel-from-d या बेहतर अभी तक http://travisjeffery.com/b/2013/02/कनवर्टिंग-अवशोषण-शक्ति-स्तर-से-से-लॉगरिदमिक-और-रैखिक-पैमाने/ – ucangetit
@ucangetit, मैं कोड स्निपेट के बारे में उस विवरण के बारे में समझदारी से बात नहीं कर सकता। ऐप्पल ने नमूना कोड के लिंक को संशोधित करने के मामले में केवल कोड कॉपी किया था। –