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