private async void LoadFolder_Click(object sender, RoutedEventArgs e)
        {
            VistaFolderBrowserDialog x = new VistaFolderBrowserDialog();

            x.Description = "burp";

            if (!x.ShowDialog().Value)
            {
                return;
            }
            AudioFiles.Clear();

            string [] fileEntries = Directory.GetFiles(x.SelectedPath);
            foreach (string fileName in fileEntries)
            {
                var fileInfo  = new FileInfo(fileName);
                var audioInfo = await AudioEncoder.GetInfo(fileInfo.FullName);

                if (audioInfo == null)
                {
                    continue;
                }

                var audioStream = audioInfo.AudioStreams.FirstOrDefault();

                if (audioStream == null)
                {
                    continue;
                }


                AudioFiles.Add(new AudioFile
                {
                    InputFile    = fileInfo,
                    FileName     = System.IO.Path.GetFileNameWithoutExtension(fileInfo.FullName),
                    SamplingRate = audioStream.SampleRate,
                    BitRate      = audioStream.Bitrate,
                    Duration     = audioStream.Duration.TotalSeconds
                });
            }

            OnPropertyChanged("AudioFiles");
        }
示例#2
0
        public async Task <ISampleSource> GetSource()
        {
            if (!ready)
            {
                var info = await AudioEncoder.GetInfo(inputPath);

                IStream audioStream = info.AudioStreams.FirstOrDefault()
                                      ?.SetCodec(AudioCodec.flac);

                var conversion = FFmpeg.Conversions.New()
                                 .AddStream(audioStream)
                                 .SetOutput(tempFilePath);

                var result = await conversion.Start();
            }

            var source = CodecFactory.Instance.GetCodec(tempFilePath)
                         .ToSampleSource();

            return(source);
        }
        private async void LoadFile_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog {
                Title = "Audiodatei auswählen", Multiselect = true
            };

            if (openFileDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            AudioFiles.Clear();
            foreach (string fileName in openFileDialog.FileNames)
            {
                var fileInfo  = new FileInfo(fileName);
                var audioInfo = await AudioEncoder.GetInfo(fileInfo.FullName);

                var audioStream = audioInfo?.AudioStreams?.FirstOrDefault();

                if (audioStream == null)
                {
                    continue;
                }


                AudioFiles.Add(new AudioFile
                {
                    InputFile    = fileInfo,
                    FileName     = System.IO.Path.GetFileNameWithoutExtension(fileInfo.FullName),
                    SamplingRate = audioStream.SampleRate,
                    BitRate      = audioStream.Bitrate,
                    Duration     = audioStream.Duration.TotalSeconds
                });
            }

            OnPropertyChanged("AudioFiles");
        }
示例#4
0
 public MainWindow()
 {
     AudioEncoder.Init();
     InitializeComponent();
 }
示例#5
0
        public async Task <int> GetSampleRate()
        {
            var info = await AudioEncoder.GetInfo(inputPath);

            return(info.AudioStreams.FirstOrDefault()?.SampleRate ?? 0);
        }