Exemplo n.º 1
0
        private async Task <bool> TryLoadWithCSCore(FileInfo filename)
        {
            this.Title = System.IO.Path.GetFileNameWithoutExtension(filename.FullName);
            Mp3Frame frame = null;

            try
            {
                await Task.Run(() =>
                {
                    using (FileStream sr = new FileStream(filename.FullName, FileMode.Open, FileAccess.Read))
                        frame = Mp3Frame.FromStream(sr);
                });

                if (frame != null)
                {
                    kbps = frame.BitRate / 1000;
                }
                TimeSpan duration   = TimeSpan.Zero;
                int      samplerate = 0;

                await Task.Run(() =>
                {
                    using (var soundSource = CodecFactory.Instance.GetCodec(filename.FullName))
                    {
                        samplerate = soundSource.WaveFormat.SampleRate;
                        duration   = soundSource.GetLength();
                    }
                });

                kHz = samplerate / 1000;
                SetDuration(duration);
                IsChecked = true;
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }