예제 #1
0
        public void CreateFingerprintsInsertThenQueryAndGetTheRightResult()
        {
            const int SecondsToProcess = 10;
            const int StartAtSecond    = 30;
            var       tagService       = new BassAudioService();
            TagInfo   info             = tagService.GetTagInfo(PathToMp3);
            TrackData track            = new TrackData(
                info.ISRC, info.Artist, info.Title, info.Album, info.Year, (int)info.Duration);
            var trackReference = modelService.InsertTrack(track);

            var hashDatas = fingerprintCommandBuilderWithBass
                            .BuildFingerprintCommand()
                            .From(PathToMp3, SecondsToProcess, StartAtSecond)
                            .WithDefaultFingerprintConfig()
                            .Hash()
                            .Result;

            modelService.InsertHashDataForTrack(hashDatas, trackReference);

            var queryResult = queryFingerprintService.Query(hashDatas, new DefaultQueryConfiguration());

            Assert.IsTrue(queryResult.IsSuccessful);
            Assert.AreEqual(1, queryResult.ResultEntries.Count);
            Assert.AreEqual(trackReference.HashCode, queryResult.ResultEntries[0].Track.TrackReference.HashCode);
        }
예제 #2
0
        public void CreateFingerprintsFromDefaultFileAndAssertNumberOfFingerprints()
        {
            const int   StaticStride = 5115;
            ITagService tagService   = new BassAudioService();

            var audioFingerprintingUnit = fingerprintCommandBuilderWithBass.BuildFingerprintCommand()
                                          .From(PathToMp3)
                                          .WithFingerprintConfig(config => { config.Stride = new IncrementalStaticStride(StaticStride, config.SamplesPerFingerprint); });

            double seconds = tagService.GetTagInfo(PathToMp3).Duration;
            int    samples = (int)(seconds * audioFingerprintingUnit.FingerprintConfiguration.SampleRate);
            int    expectedFingerprints = (samples / StaticStride) - 1;

            var fingerprints = audioFingerprintingUnit.Fingerprint().Result;

            Assert.AreEqual(expectedFingerprints, fingerprints.Count);
        }