如何在ios 7中获得话筒音量?
在ios 7中有获取话筒音量的视图吗如何在ios 7中获得话筒音量?,ios,volume,ios7,Ios,Volume,Ios7,在ios 7中有获取话筒音量的视图吗 NSURL *url = [NSURL fileURLWithPath:@"/dev/null"]; NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithFloat: 44100.0], AVSampleRateKey,
NSURL *url = [NSURL fileURLWithPath:@"/dev/null"];
NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithFloat: 44100.0], AVSampleRateKey,
[NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
[NSNumber numberWithInt: 0], AVNumberOfChannelsKey,
[NSNumber numberWithInt: AVAudioQualityMax], AVEncoderAudioQualityKey,
nil];
NSError *error;
recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error];
if (recorder) {
//recorder.delegate = self;
[recorder prepareToRecord];
recorder.meteringEnabled = TRUE;
[recorder record];
levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.1 target: self selector: @selector(levelTimerCallback:) userInfo: nil repeats: YES];
} else {
NSLog(@"");// mic error message
}
- (void)levelTimerCallback:(NSTimer *)timer {
[recorder updateMeters];
const double ALPHA = 0.05;
double peakPowerForChannel = pow(10, (ALPHA * [recorder averagePowerForChannel:0]));
db = 20* log10(peakPowerForChannel);
db += taraturaDb;
db = db < 0 ? 0 : db;
lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults;
if (lowPassResults < 0.95) {
NSLog(@"%f",db);
}
NSURL*url=[NSURL fileURLWithPath:@/dev/null];
NSDictionary*设置=[NSDictionary Dictionary WithObjectsAndKeys:
[NSNumber numberWithFloat:44100.0],AVSampleRateKey,
[NSNumber Number Withint:kAudioFormatAppleLossless],AVFormatIDKey,
[NSNumber numberWithInt:0],AVNumberOfChannelsKey,
[NSNumber Number Withint:AVAudioQualityMax],AVEncoderAudioQualityKey,
零];
n错误*错误;
记录器=[[AVAudioRecorder alloc]initWithURL:url设置:设置错误:&错误];
if(记录器){
//recorder.delegate=self;
[记录者准备记录];
recorder.meteringEnabled=真;
[录音记录];
levelTimer=[NSTimer scheduledTimerWithTimeInterval:0.1目标:自选择器:@selector(levelTimerCallback:)用户信息:无重复:是];
}否则{
NSLog(@“”);//麦克风错误消息
}
-(无效)LevelTimer回调:(NSTimer*)计时器{
[记录器更新器];
常数双α=0.05;
双峰值功率信道=功率(10,(α*[信道的记录器平均功率:0]);
db=20*log10(峰值功率信道);
db+=1 db;
db=db<0?0:db;
lowPassResults=ALPHA*峰值功率ForChannel+(1.0-ALPHA)*lowPassResults;
如果(低通结果<0.95){
NSLog(@“%f”,db);
}
这在iOS6中起作用,但在ios7中不起作用
谢谢在初始化音频录像机之前,请先放置以下行:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setActive:YES error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:nil];
谢谢,这真的帮了我的忙!这真是太棒了,只是它破坏了我的其他音效:/@FaddishWorm将音频会话类别设置为
AVAudioSessionCategoryPlayAndRecord
“此类别适用于同时录制和播放,也适用于录制和播放但不同时播放的应用程序”据任何人所知,这是否也可以安全地用于iOS 6和更低版本?