コード例 #1
0
        public void CombineThrowsWhenElementIsNull()
        {
            var       audio = new AudioData(GenerateAudio.GeneratePcmSineWave(100, 1, 48000));
            Exception ex    = Record.Exception(() => AudioData.Combine(audio, null));

            Assert.IsType <ArgumentException>(ex);
        }
コード例 #2
0
        public void CombineThrowsWhenAudioCantBeCombined()
        {
            var       audio  = new AudioData(GenerateAudio.GeneratePcmSineWave(100, 1, 48000));
            var       audio2 = new AudioData(GenerateAudio.GeneratePcmSineWave(200, 1, 48000));
            Exception ex     = Record.Exception(() => AudioData.Combine(audio, audio2));

            Assert.IsType <ArgumentException>(ex);
        }
コード例 #3
0
        public void AddSameFormats()
        {
            Pcm16Format pcm    = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            Pcm16Format pcm2   = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            var         audio  = new AudioData(pcm);
            var         audio2 = new AudioData(pcm2);

            AudioData combined    = AudioData.Combine(audio, audio2);
            var       pcmCombined = combined.GetFormat <Pcm16Format>();

            Assert.Same(pcm.Channels[0], pcmCombined.Channels[0]);
            Assert.Same(pcm2.Channels[0], pcmCombined.Channels[1]);
            Assert.Equal(2, pcmCombined.ChannelCount);
        }
コード例 #4
0
        public void AddDifferentFormats()
        {
            Pcm16Format   pcm    = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            GcAdpcmFormat adpcm  = GenerateAudio.GenerateAdpcmSineWave(100, 1, 48000);
            var           audio  = new AudioData(pcm);
            var           audio2 = new AudioData(adpcm);

            AudioData combined = AudioData.Combine(audio, audio2);

            Assert.Collection(combined.GetAllFormats(), x => Assert.True(x is Pcm16Format));
            var pcmCombined = combined.GetFormat <Pcm16Format>();

            Assert.Same(pcm.Channels[0], pcmCombined.Channels[0]);
            Assert.Equal(2, pcmCombined.ChannelCount);
        }
コード例 #5
0
        private void EncodeFiles(JobFiles files, Options options)
        {
            foreach (AudioFile file in files.InFiles.Where(x => x.Channels != null))
            {
                IAudioFormat format = file.Audio.GetAllFormats().First();
                file.Audio = new AudioData(format.GetChannels(file.Channels.ToArray()));
            }

            AudioData[] toMerge = files.InFiles.Select(x => x.Audio).ToArray();

            Audio = AudioData.Combine(toMerge);

            if (options.NoLoop)
            {
                Audio.SetLoop(false);
            }

            if (options.Loop)
            {
                Audio.SetLoop(options.Loop, options.LoopStart, options.LoopEnd);
            }
        }
コード例 #6
0
        public void AddSameFormatsAfterEncodingChoosesEncodedFormat()
        {
            Pcm16Format pcm    = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            Pcm16Format pcm2   = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            var         audio  = new AudioData(pcm);
            var         audio2 = new AudioData(pcm2);

            var adpcm  = audio.GetFormat <GcAdpcmFormat>();
            var adpcm2 = audio2.GetFormat <GcAdpcmFormat>();

            AudioData combined = AudioData.Combine(audio, audio2);

            Assert.Collection(combined.GetAllFormats(), x => Assert.True(x is GcAdpcmFormat));
            var pcmCombined   = combined.GetFormat <Pcm16Format>();
            var adpcmCombined = combined.GetFormat <GcAdpcmFormat>();

            Assert.Same(adpcm.Channels[0].GetAdpcmAudio(), adpcmCombined.Channels[0].GetAdpcmAudio());
            Assert.Same(adpcm2.Channels[0].GetAdpcmAudio(), adpcmCombined.Channels[1].GetAdpcmAudio());
            Assert.NotSame(pcm.Channels[0], pcmCombined.Channels[0]);
            Assert.NotSame(pcm2.Channels[0], pcmCombined.Channels[1]);
            Assert.Equal(2, adpcmCombined.ChannelCount);
        }
コード例 #7
0
        public void AddDifferentFormatsMultipleInputs()
        {
            Pcm16Format pcmFormat = GenerateAudio.GeneratePcmSineWave(100, 4, 48000);
            Pcm16Format pcm0      = pcmFormat.GetChannels(0);
            Pcm16Format pcm1      = pcmFormat.GetChannels(1, 2);
            Pcm16Format pcm2      = pcmFormat.GetChannels(3);
            var         audio0    = new AudioData(pcm0);
            var         audio1    = new AudioData(pcm1);
            var         audio2    = new AudioData(pcm2);

            audio0.GetFormat <GcAdpcmFormat>();
            audio2.GetFormat <GcAdpcmFormat>();

            AudioData combined = AudioData.Combine(audio0, audio1, audio2);

            Assert.Collection(combined.GetAllFormats(), x => Assert.True(x is Pcm16Format));
            var pcmCombined = combined.GetFormat <Pcm16Format>();

            Assert.Equal(4, pcmCombined.ChannelCount);
            Assert.Same(pcm0.Channels[0], pcmCombined.Channels[0]);
            Assert.Same(pcm1.Channels[0], pcmCombined.Channels[1]);
            Assert.Same(pcm1.Channels[1], pcmCombined.Channels[2]);
            Assert.Same(pcm2.Channels[0], pcmCombined.Channels[3]);
        }
コード例 #8
0
        public void CombineThrowsWhenArrayIsNull()
        {
            Exception ex = Record.Exception(() => AudioData.Combine(null));

            Assert.IsType <ArgumentException>(ex);
        }