setupAudioSessionForMinfo static method

Future<bool> setupAudioSessionForMinfo()

Implementation

static Future<bool> setupAudioSessionForMinfo() async {
  _logger.info('🎵 Configuration session audio pour Minfo...');

  try {
    final session = await AudioSession.instance;

    await session.configure(const AudioSessionConfiguration(
      avAudioSessionCategory: AVAudioSessionCategory.playAndRecord,
      avAudioSessionCategoryOptions: AVAudioSessionCategoryOptions.defaultToSpeaker,
      avAudioSessionMode: AVAudioSessionMode.measurement,
      avAudioSessionRouteSharingPolicy: AVAudioSessionRouteSharingPolicy.defaultPolicy,
      avAudioSessionSetActiveOptions: AVAudioSessionSetActiveOptions.none,
      androidAudioAttributes: AndroidAudioAttributes(
        contentType: AndroidAudioContentType.speech,
        flags: AndroidAudioFlags.none,
        usage: AndroidAudioUsage.voiceCommunication,
      ),
      androidAudioFocusGainType: AndroidAudioFocusGainType.gain,
      androidWillPauseWhenDucked: false,
    ));

    if (Platform.isIOS) {
      await IOSAudioDebug.logAudioSessionDetails();
      await IOSAudioDebug.optimizeForAudioDetection();
    }

    _logger.info('🎵 ✅ Session audio configurée');
    return true;
  } catch (e) {
    _logger.error('🎵 ❌ Erreur session audio: $e');
    return false;
  }
}