/// <summary>
        /// Check the registry and compare to the current list of speakers on
        /// the machine (in case there is a mismatch).  Or return the default
        /// system speaker if none were selected.
        /// </summary>
        /// <returns>
        /// The FilterInfo of the speaker that was selected and still exists
        /// </returns>
        public static FilterInfo SelectedSpeaker()
        {
            FilterInfo selectedSpeaker = AudioRenderer.DefaultFilterInfo();

            string[] regSelectedSpeaker = AVReg.ValueNames(AVReg.SelectedSpeaker);
            if (regSelectedSpeaker != null)
            {
                FilterInfo[] spkrs = AudioRenderer.Renderers();

                for (int i = 0; i < spkrs.Length; i++)
                {
                    for (int j = 0; j < regSelectedSpeaker.Length; j++)
                    {
                        if (spkrs[i].Moniker == regSelectedSpeaker[j])
                        {
                            selectedSpeaker = spkrs[i];
                            break;
                        }
                    }
                }
            }
            else
            {
                selectedSpeaker = AudioRenderer.DefaultFilterInfo();
            }

            return(selectedSpeaker);
        }
示例#2
0
        private void DiscoverDevices()
        {
            Log("Cameras");
            foreach (FilterInfo fi in VideoSource.Sources())
            {
                clbCameras.Items.Add(fi);
                Log(string.Format("{0}, {1}", fi.DisplayName, fi.Moniker));
            }

            Log("\r\nMicrophones");
            // Add a blank so they can unselect the microphone
            cboMicrophones.Items.Add("<none>");
            foreach (FilterInfo fi in AudioSource.Sources())
            {
                cboMicrophones.Items.Add(fi);
                Log(string.Format("{0}, {1}", fi.DisplayName, fi.Moniker));
            }

            Log("\r\nSpeakers");
            foreach (FilterInfo fi in AudioRenderer.Renderers())
            {
                cboSpeakers.Items.Add(fi);
                Log(string.Format("{0}, {1}", fi.DisplayName, fi.Moniker));
            }
        }