Вывод общего времени трека NAudio C#

130
08 ноября 2019, 15:30

Необходимо выводить время треков. Получается сделать, если например только mp3. Но в плейлисте могут быть и другие форматы, например WAV и Vorbis. Как можно реализовать автоматическое переключение между типами для вывода времени для любых из двух типов файлов. Сейчас сделал следующим образом:

private static void Main(string[] args)
    {
        try
        {
            foreach (var file in GetFileInfo())
            {
                Mp3FileReader reader = new Mp3FileReader(file.FullName);
                WaveFileReader s; //??
                TimeSpan duration = reader.TotalTime;
                Console.WriteLine(duration);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
        Console.ReadKey();
    }
    public static IList<FileInfo> GetFileInfo()
    {
        DirectoryInfo directories = new DirectoryInfo("D:\\TestAudio");
        var extensions = new string[] { "*.mp3", "*.mp4", "*.wav", "*.wma", "*.ogg", "*.spx" };
        var files = extensions.SelectMany(ext => directories.GetFiles(ext, SearchOption.AllDirectories));
        return files.ToList();
    }

Когда доходит до WAV файлов соответственно выводит исключение.

Answer 1

Используйте AudioFileReader:

AudioFileReader reader = new AudioFileReader(path);

Он должен уметь выводить длину для всех поддерживаемых типов файлов (это включает WAV и MP3, но не OGG Vorbis, если только для него не установлен кодек).

READ ALSO
Проблема с Windows Forms

Проблема с Windows Forms

Есть написанная мною программа на c# и в ней есть цикл whileНо когда я запускают программу с этим циклом, то нет того окна которое я сделал

140
Microsoft Reporting Service и PDF 1.4

Microsoft Reporting Service и PDF 1.4

Есть какие-либо способы создать PDF версии 14 через Microsoft Reporting Services? У меня получается только версия 1

134
Исходный код программы

Исходный код программы

Выдали тз, с самим тз проблем нетТолько Вот один момент , цитирую "надо прислать исходный код и запускаемый файл

211
Парсинг *.csv в двумерный массив C#

Парсинг *.csv в двумерный массив C#

Необходимо прочитать csv файл так,чтобы каждая ячейка csv файла соответствовала ячейке в массивеНаходил способы прочитать в одномерный массив,где...

134