| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /************************************************************
- * * Hyphenate CONFIDENTIAL
- * __________________
- * Copyright (C) 2016 Hyphenate Inc. All rights reserved.
- *
- * NOTICE: All information contained herein is, and remains
- * the property of Hyphenate Inc.
- * Dissemination of this information or reproduction of this material
- * is strictly forbidden unless prior written permission is obtained
- * from Hyphenate Inc.
- */
- #import "EMCDDeviceManager+Microphone.h"
- #import "EMAudioRecorderUtil.h"
- @implementation EMCDDeviceManager (Microphone)
- // Check the availability for microphone
- - (BOOL)emCheckMicrophoneAvailability{
- __block BOOL ret = NO;
- AVAudioSession *session = [AVAudioSession sharedInstance];
- if ([session respondsToSelector:@selector(requestRecordPermission:)]) {
- [session performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {
- ret = granted;
- }];
- } else {
- ret = YES;
- }
-
- return ret;
- }
- // Get the audio volumn (0~1)
- - (double)emPeekRecorderVoiceMeter{
- double ret = 0.0;
- if ([EMAudioRecorderUtil recorder].isRecording) {
- [[EMAudioRecorderUtil recorder] updateMeters];
- //Average volumn [recorder averagePowerForChannel:0];
- //Maximum volumn [recorder peakPowerForChannel:0];
- double lowPassResults = pow(10, (0.05 * [[EMAudioRecorderUtil recorder] peakPowerForChannel:0]));
- ret = lowPassResults;
- }
-
- return ret;
- }
- @end
|