Exemple #1
0
        public void LoadFile(string soundPath)
        {
            if (string.IsNullOrEmpty(soundPath) || !File.Exists(soundPath))
            {
                FreeStream();
                return;
            }

            // Free Stream
            FreeStream();

            // File Stream
            var fileMemory = File.ReadAllBytes(soundPath);

            // _handle = Bass.CreateStream(soundfile, 0, 0, BassFlags.Default | BassFlags.Float | BassFlags.AutoFree);

            // _handle = Bass.CreateStream(soundfile);

            _handle = Bass.CreateStream(fileMemory, 0, fileMemory.Length, BassFlags.Default);

            // Free
            try
            {
                fileMemory = null;
                File.Delete(soundPath);
                GC.Collect();
            }
            catch { }

            if (_handle == 0)
            {
                Console.WriteLine("Player: Error Creating stream for {0} {1:G}", soundPath, Bass.LastError);
                return;
            }

            _Length = Bass.ChannelBytes2Seconds(_handle, Bass.ChannelGetLength(_handle));

            // Bass.FloatingPointDSP = true;

            if (Bass.ChannelSetDevice(_handle, 1))
            {
                Console.WriteLine("Player: Error Set Device {0:G}", Bass.LastError);
                return;
            }

            // Set Volume
            Volume = _VolumeTrack.Value / 100.0;

            // Set Balance
            Balance = _PanTrack.Value / 100.0f;

            // Play
            Play(true);
        }
Exemple #2
0
 public double Bytes2Seconds(long Bytes)
 {
     return(Bass.ChannelBytes2Seconds(Handle, Bytes));
 }