コード例 #1
0
        public static void SetBackground(
            this IWavePlayer player)
        {
            var fi = player.GetType().GetField(
                "playThread",
                BindingFlags.Instance |
                BindingFlags.NonPublic);

            if (fi != null)
            {
                var thread = fi.GetValue(player) as Thread;
                if (thread != null)
                {
                    thread.IsBackground = true;
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Initialize the NAudio framework
        /// </summary>
        private void InitializeNAudioLibrary()
        {
            try
            {
                m_latency = Properties.Settings.Default.Latency;

                string soundOutput;

                m_logger.Info("OS Info: " + Environment.OSVersion.ToString());

                if (Environment.OSVersion.Version.Major < 6)
                    soundOutput = "WaveOut"; // XP
                else
                    soundOutput = "WasapiOut"; // Vista/7

                // Properties.Settings.Default.SoundOutput;
                m_logger.Info("Wave Output Device that was requested: {0}", soundOutput);

                // Set the wave output device based on the configuration setting
                switch (soundOutput)
                {
                    case "WasapiOut":
                        m_waveOutDevice = new WasapiOut(global::NAudio.CoreAudioApi.AudioClientShareMode.Shared, m_latency);
                        break;

                    case "DirectSound":
                        m_waveOutDevice = new DirectSoundOut(m_latency);
                        break;

                    default:
                    case "WaveOut":
                        m_waveOutDevice = new WaveOut();
                        break;
                }

                m_logger.Info("Wave Output Device that is actually being used: {0}", m_waveOutDevice.GetType().ToString());
            }
            catch (Exception driverCreateException)
            {
                m_logger.ErrorException("NAudio Driver Creation Failed", driverCreateException);
                throw driverCreateException;
            }
        }