public void ReadMonoFromFileTest()
        {
            string tempFile = string.Format(@"{0}{1}", Path.GetTempPath(), "0.wav");

            bassAudioService.RecodeFileToMonoWave(PathToMp3, tempFile, SampleRate);
            float[]  samples      = bassAudioService.ReadMonoSamplesFromFile(PathToMp3, SampleRate);
            FileInfo info         = new FileInfo(tempFile);
            long     expectedSize = info.Length - WaveHeader;
            long     actualSize   = samples.Length * (BitsPerSample / 8);

            Assert.AreEqual(expectedSize, actualSize);
        }
예제 #2
0
        public void CheckFingerprintCreationAlgorithmTest()
        {
            using (BassAudioService bassAudioService = new BassAudioService())
            {
                string tempFile = Path.GetTempPath() + DateTime.Now.Ticks + ".wav";
                bassAudioService.RecodeFileToMonoWave(PathToMp3, tempFile, 5512);
                long fileSize = new FileInfo(tempFile).Length;

                var list = fingerprintCommandBuilderWithBass.BuildFingerprintCommand()
                           .From(PathToMp3)
                           .WithFingerprintConfig(customConfiguration => customConfiguration.Stride = new StaticStride(0, 0))
                           .Fingerprint()
                           .Result;

                long expected = fileSize / (8192 * 4); // One fingerprint corresponds to a granularity of 8192 samples which is 16384 bytes
                Assert.AreEqual(expected, list.Count);
                File.Delete(tempFile);
            }
        }