如何在 iOS 7 中获得麦克风音量?

Posted

技术标签:

【中文标题】如何在 iOS 7 中获得麦克风音量?【英文标题】:how to get mic volume in ios 7? 【发布时间】:2013-09-17 15:31:55 【问题描述】:

ios 7 中有获取麦克风音量的视图吗?

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

这在 iOS6 中有效,但在 iOS 7 中无效

谢谢

【问题讨论】:

【参考方案1】:

在初始化 AVAudioRecorder 之前添加这些行:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setActive:YES error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:nil];

【讨论】:

谢谢,这对我很有帮助! 这很棒,只是它破坏了我的其他音效:/ @FaddishWorm 将音频会话类别设置为AVAudioSessionCategoryPlayAndRecord。根据the documentation,“此类别适用于同时录制和播放,也适用于录制和播放但不同时进行的应用” 有人知道这是否也可以在 iOS 6 及更低版本中安全使用吗?

以上是关于如何在 iOS 7 中获得麦克风音量?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式在 Android 中调整麦克风音量

如何在iOS上获得音量级别和音量更改通知?

如何从麦克风输入中获取音量

在android中获取麦克风音量

如何显示我的麦克风的当前音量?

iOS 是不是会降低使用麦克风的应用程序的扬声器音量?