示例#1
0
 public static void EffectSample(int ID, AudioEffectChain Chain)
 {
     if (UsedLibrary == AudioLibrary.NAudio)
     {
         if (Samples[ID] is WaveChannel16To32) { ((WaveChannel16To32)Samples[ID]).Chain = Chain; if (Chain != null) Chain.SampleRate = ((WaveChannel16To32)Samples[ID]).WaveFormat.SampleRate; }
         else if (Samples[ID] is WaveChannel24To32) { ((WaveChannel24To32)Samples[ID]).Chain = Chain; if(Chain!=null) Chain.SampleRate = ((WaveChannel24To32)Samples[ID]).WaveFormat.SampleRate; }
         else if (Samples[ID] is WaveChannel32To32) { ((WaveChannel32To32)Samples[ID]).Chain = Chain; if (Chain != null) Chain.SampleRate = ((WaveChannel32To32)Samples[ID]).WaveFormat.SampleRate; }
         //else if (Samples[ID] is WaveChannel32) ((WaveChannel32)Samples[ID]).Chain = Chain;
         //=============================================
     }
 }
示例#2
0
        //private static MidiOut midiOut = null;
        //=============================================
        public static bool OpenAudio(AudioLibrary AL,AudioEffectChain General)
        {
            if (UsedLibrary != AudioLibrary.Null ||(playbackDevice != null && playbackDevice.PlaybackState == PlaybackState.Playing)) return false;

            UsedLibrary = AL;

            if (UsedLibrary == AudioLibrary.NAudio)
            {
                //if (midiOut != null) midiOut.Close();

                //NAUDIO
                Mixer32 = new RecordableMixerStream32();
                Mixer32.Chain = General;
                Mixer32.AutoStop = false;
                playbackDevice = new AsioOut(0);//new WaveOut();//
                if (playbackDevice == null) playbackDevice = new WaveOut();
                if (playbackDevice == null) return false;
                playbackDevice.Init(Mixer32);

                //=============================================
            }
            return true;
        }