public void NAudioHandler_Path_ConstructorTest()
        {
            var          nAudioHandler = new NAudioHandler(SoundFilePath);
            const string exceptedPath  = @"D:\Projects\BackgroundMusic\BackgroundMusicTests\Resources\Sounds\";

            Assert.AreEqual(@exceptedPath, nAudioHandler.AudioName);
        }
        private string GetDefaultDevice()
        {
            FFmpegHandler handler  = new FFmpegHandler("ffmpeg", "ffmpeg.exe");
            NAudioHandler nHandler = new NAudioHandler();

            string[] devices       = new string[0];
            string   defaultDevice = nHandler.getDefaultDevice().ToString();
            string   ffmpegDevice  = string.Empty;

            handler.getInputDevices((string[] s) =>
            {
                devices = s;
            });
            Thread.Sleep(3000);
            foreach (string s in devices)
            {
                for (int i = 0; i < s.Length; i++)
                {
                    if (i == s.Length - 1 && s[i] == defaultDevice[i])
                    {
                        ffmpegDevice = s;
                        break;
                    }
                    if (s[1] != defaultDevice[1])
                    {
                        continue;
                    }
                }
            }
            return(ffmpegDevice);
        }
示例#3
0
 /// <summary>
 /// Instantiate a new login screen
 /// If you want a default instantiation set
 /// loggedIn, and recording as false, and pass
 /// null in for everything else.
 /// </summary>
 /// <param name="loggedIn">Boolean value for recovery </param>
 /// <param name="stationID">StatationID to recover back to where we were previously</param>
 /// <param name="authCode">Authorization code for recovery</param>
 /// <param name="recording">Boolean value to determin if we were recording before</param>
 /// <param name="device">Device we were recordingo on.</param>
 public Login(bool loggedIn, string stationID, string authCode, bool recording, string device)
 {
     InitializeComponent();
     synchronizationContext = SynchronizationContext.Current;
     nAudioHandler          = new NAudioHandler();
     this.loggedIn          = loggedIn;
     //If the application is in recovery, fill in the details
     //as the previous seesion
     if (loggedIn == true)
     {
         if (stationID != null)
         {
             this.stationID.Text = stationID;
         }
         if (authCode != null)
         {
             this.Auth_Code.Text = authCode;
         }
         if (!string.IsNullOrEmpty(device))
         {
             this.selectedDevice = device;
         }
         this.recording = recording;
     }
     FFmpegGetDevices();
 }
示例#4
0
 public Audio(NAudioHandler audioHandler)
 {
     _audioHandler = audioHandler;
     Path          = audioHandler.Path;
     Name          = audioHandler.AudioName;
     FileExtension = audioHandler.FileExtension;
     State         = AudioState.Stopped;
 }
示例#5
0
        public void DefaultDevice()
        {
            var           enumerator    = new MMDeviceEnumerator();
            MMDevice      defaultDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Console);
            NAudioHandler handler       = new NAudioHandler();
            MMDevice      device        = handler.getDefaultDevice();

            Assert.AreEqual(device.ToString(), defaultDevice.ToString());
        }
        private void setDefaultDevice()
        {
            NAudioHandler nAudioHandler = new NAudioHandler();
            MMDevice      defaultDevice = nAudioHandler.getDefaultDevice();

            if (defaultDevice != null)
            {
                inputDevices.SelectedIndex = inputDevices.Items.IndexOf(defaultDevice.ToString());
            }
        }
        public void SaveFileSerializer_Serialize_Deserialize_Campaign()
        {
            var campaign = new Campaign();

            var nAudioHandler = new NAudioHandler(@"TestSounds\Chop.mp3");
            var audio         = new Audio(nAudioHandler);

            audio.Play();
            Scenario scenario = new Scenario();

            scenario.Atmos.Add(audio);
            campaign.Scenarios.Add(scenario);
            Assert.AreEqual(1, campaign.PlayedAudios.Count);
            var serializeCampaign   = Serializer.Serialize <Campaign>(campaign);
            var deserializeCampaign = Serializer.Deserialize <Campaign>(serializeCampaign);

            deserializeCampaign.PlayedAudios[0].Play();
            Assert.AreNotEqual(null, serializeCampaign);
        }
示例#8
0
        public Metering(string deviceName)
        {
            //SelectedDevice = getDevice(deviceName);
            SelectedDevice = NAudioHandler.MatchDevice(deviceName);
            if (SelectedDevice == null)
            {
                throw new ArgumentException("No audio device found for " + deviceName);
            }
            capture = new WasapiCapture(SelectedDevice);
            try
            {
                capture.StartRecording();
            }
            catch (Exception ex)
            {
                throw new ArgumentException("Can not capture device");
            }

            capture.DataAvailable += CaptureOnDataAvailable;
            Console.WriteLine(SelectedDevice.AudioMeterInformation.MasterPeakValue);
        }
示例#9
0
        public static MMDevice getDevice(string device)
        {
            NAudioHandler handler = new NAudioHandler();

            MMDevice[] devices = handler.getDevices();

            foreach (MMDevice d in devices)
            {
                string stringDevice = d.ToString();
                for (int i = 0; i < device.Length; i++)
                {
                    Console.Write(stringDevice[i]);
                    if (i == device.Length - 1 && stringDevice[i] == device[i])
                    {
                        return(d);
                    }
                    if (stringDevice[i] != device[i])
                    {
                        break;
                    }
                }
            }
            return(null);
        }
        public void NAudioHandler_AudioName_ConstructorTest()
        {
            var nAudioHandler = new NAudioHandler(SoundFilePath);

            Assert.AreEqual(@"thunder_strike_1-Mike_Koenig-739781745.mp3", nAudioHandler.AudioName);
        }
        public void NAudioHandler_TotalDuration_ConstructorTest()
        {
            var nAudioHandler = new NAudioHandler(SoundFilePath);

            Assert.AreEqual(21, nAudioHandler.TotalDuration.Seconds);
        }