Я пытаюсь комбинировать воспроизведение мультимедиа с функцией VoIP (через Twilio) для iOS 9 и 8.
В то время как аудиопоток воспроизводится в фоновом режиме, я подключаю или отключает сеанс голосовой конференции, результаты которого в скачке объема от значения X до значения Y. Этот скачок можно услышать, а также наблюдать за изменением значения [AVAudioSession sharedInstance].outputVolume
.
Я бы хотел предотвратить этот переход и поддерживать уровень громкости на постоянном уровне, если пользователь не примет его вручную.
Дальнейшие исследования показали, что в то время как категория AVAudioSession установлен в AVAudioSessionCategoryPlayAndRecord, переключение между режимами [[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&error]
и [[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVoiceChat error:&error]
вызывает приложение, чтобы работать в двух совершенно разных масштабах объема, соответственно.
i.e есть громкость для режима «По умолчанию» и полностью несвязанный том для режима «Голосовой чат».
AVAudioSession's documentation, похоже, не упоминает об объеме в отношении переключателей режима/категории, и я не могу найти что-либо релевантное для интерфейсов ...AVAudioSession режим разницы громкости
Цените любую помощь.
Меган, спасибо, но это не то, что я ищу. incomingSoundEnabled/outgoingSoundEnabled - это только свойство включения/выключения звука звонка. В моей ситуации, когда Twilio подключается, объем всей сессии изменяется и остается таким, пока Twilio не отключится. Я не думаю, что это поведение характерно для Twilio. Я могу воспроизвести эту ситуацию с двумя томами просто путем вызова setMode на AVAudioSession. Я надеялся узнать причину этого, и как я могу поддерживать постоянный объем при игре с 'setMode' – eladr