Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS:当用户关闭时将重置音频会话属性&;重新打开应用程序?_Iphone_Ios_Audio_Core Audio_Audiounit - Fatal编程技术网

Iphone iOS:当用户关闭时将重置音频会话属性&;重新打开应用程序?

Iphone iOS:当用户关闭时将重置音频会话属性&;重新打开应用程序?,iphone,ios,audio,core-audio,audiounit,Iphone,Ios,Audio,Core Audio,Audiounit,我使用AudioUnit访问RemoteIO以获得高性能音频。我的应用程序对从麦克风接收的音频中嵌入的信号进行解码。为了保证准确性,我需要将音频过滤和操作降到最低限度。我对音频会话执行以下操作: UInt32 mode = kAudioSessionMode_Measurement; Float32 zeroF = 0; UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord; AudioSessionSetProperty(kAud

我使用AudioUnit访问RemoteIO以获得高性能音频。我的应用程序对从麦克风接收的音频中嵌入的信号进行解码。为了保证准确性,我需要将音频过滤和操作降到最低限度。我对音频会话执行以下操作:

UInt32 mode = kAudioSessionMode_Measurement;
Float32 zeroF = 0;
UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_Mode, sizeof(mode), &mode);
AudioSessionSetProperty(kAudioSessionProperty_InputGainScalar, sizeof(zeroF), &zeroF);
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(audioCategory), &audioCategory);
并将其连接到音频单元:

UInt32 one = 1;
UInt32 zero = 0;
AudioUnitSetProperty(rioUnit, kAUVoiceIOProperty_BypassVoiceProcessing, kAudioUnitScope_Input, 0, &one, sizeof(one));
AudioUnitSetProperty(rioUnit, kAUVoiceIOProperty_VoiceProcessingEnableAGC, kAudioUnitScope_Input, 0, &zero, sizeof(zero));
AudioUnitSetProperty(rioUnit, kAUVoiceIOProperty_DuckNonVoiceAudio, kAudioUnitScope_Input, 0, &zero, sizeof(zero));
这似乎是可行的,尽管肯定还有一些增益修正正在进行

我的问题是当用户按下Home按钮离开应用程序,然后点击应用程序图标返回应用程序时。音频发生了一些变化,似乎iOS正在启用噪声抑制和增益控制。这是一张音频频谱图——请注意,在整个音频频谱中,在图的中间,功率大幅下降。这是我离开应用程序然后重新打开它的时候

  • X轴是时间
  • Y轴为频率(0-22050 Hz)
  • 像素亮度即功率(黑色=-128 dB,白色=0 dB)
我觉得我已经尝试了所有的方法-停止并重新启动音频单元,停止并重新启动音频会话。。。似乎什么也帮不上忙。我很想知道该怎么做


您能告诉我这段代码是写在哪里的吗me@AshutoshMishra很抱歉,这是专有代码,无法发布,但要解决此问题,有必要获取更多详细信息。您可能需要检查对
AudioUnitSetProperty
的所有调用是否有错误作为起点。您是否正在处理中断和音频路由更改?