Громкость воспроизведения AVSpeechSynthesizer (Text to Speech) увеличивается сама по себе, ТОЛЬКО на iPhone7

Мое приложение iOS10 позволяет распознавать текст в речь и распознавать речь. При этом он приостанавливает звук из других приложений и уведомляет другое о завершении ASR/TTS, чтобы они могли возобновить воспроизведение звука. Все работает отлично на iPhone5 и 6.

Проблема с iPhone7s: сначала громкость разговорных фраз очень низкая, а ближе к концу - громче. Зачем?

Я предоставлю часть своего кода на всякий случай, потому что это похоже на ошибку iOS.

Код аудио сеанса:

-(AVAudioSessionCategoryOptions)indigoAudioBehaviorOptions:(AVAudioSession *)s{
    AVAudioSessionCategoryOptions audioIOoptions = [s categoryOptions];
    audioIOoptions |= AVAudioSessionCategoryOptionDefaultToSpeaker;
    audioIOoptions |= AVAudioSessionCategoryOptionAllowBluetooth;
    audioIOoptions |= AVAudioSessionCategoryOptionAllowBluetoothA2DP;
    return audioIOoptions;
}
-(void)notifyIOSthatOtherAppsCanResumeAudioPlayback{
    NSError *err;
    [myAudioSession setActive: NO
                  withOptions: AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation
                        error: &err];
    if(err!=nil){
        NSLog(@"audioIsFreeNotificationForIOS ERROR: %@",err.description);
    }
}


myAudioSession = [AVAudioSession sharedInstance];
NSError *err;
[myAudioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions: [self indigoAudioBehaviorOptions:indigoAudioSession] error:&err];

Код текста в речь:

nativeVocalizer = [[AVSpeechSynthesizer alloc] init];
nativeVocalizer.delegate = self;
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:stringToSpeak];
[utterance setVoice:[AVSpeechSynthesisVoice voiceWithLanguage:lang]];
[nativeVocalizer speakUtterance:utterance];

1 ответ

Это может произойти из-за активного аудиосеанса в режиме AVAudioSession.

Единственный режим, где это поведение не происходило для меня, был при использовании режима AVAudioSessionModeMeasurement.

Другие вопросы по тегам