Exemple #1
0
        public CallSession(IAudioRouter router)
        {
            _locker     = new object();
            _userToPort = new Dictionary <IUser, int>();

            _router = router;

            State = CallState.Created;
        }
        private MainAudioSession(string audioEndPointDeviceID, IProcessManager processManager, IAudioRouter audioRouter)
        {
            _processManager   = processManager;
            _spytifyProcessId = _processManager.GetCurrentProcess()?.Id;

            _audioRouter             = audioRouter;
            _cancellationTokenSource = new CancellationTokenSource();

            AudioMMDevices        = new MMDeviceEnumerator();
            AudioMMDevicesManager = new AudioMMDevicesManager(AudioMMDevices, audioEndPointDeviceID);

            _audioLoopback = new AudioLoopback(AudioMMDevicesManager.AudioEndPointDevice,
                                               AudioMMDevicesManager.AudioMMDevices.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia));

            AudioMMDevices.RegisterEndpointNotificationCallback(AudioMMDevicesManager);
        }