Хорошо, я знаю, это звучит как очень простой вопрос для некоторых, но я действительно застрял здесь. Действительно, я создаю аудиоплеер, используя Naudio, и я понял, что во многих учебниках люди всегда показывают простые способы, чтобы вы начали. Однако, на мой взгляд, они всегда забывают показать, как вещи действительно выполняются в реальном приложении. Например, при воспроизведении музыки с помощью Naudio я бы сделал что-то вроде:Naudio: Как играть в MP3 и WAV-файл?
Void PlayAudioMusic(string FilePath)
{
using (var ms = File.OpenRead(FilePath))
using (var rdr = new Mp3FileReader(ms))
using (var wavStream = WaveFormatConversionStream.CreatePcmStream(rdr))
using (var baStream = new BlockAlignReductionStream(wavStream))
using (var waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
{
waveOut.Init(baStream);
waveOut.Play();
}
}
Это отлично подходит для тестирования в простом консольном приложении. Это, однако, не полезно, если вы на самом деле создаете серьезное приложение. Например, что многие учебники не говорят, например, как обрабатывать наиболее важные вещи, такие как:
- Располагая ресурс и когда сделать это
- Лучшие способы обработки различных исключений
- Что делать до паузы, остановки, перемотки назад или даже выхода из приложения
- Другие вещи, которые я даже не знаю, существуют. Поскольку я перехожу к этому процессу и замечаю, что мое приложение имеет слишком много исключений, может кто-то поделится, как класс оболочки вокруг Naudio, с которым он справлялся. Я уверен, что это ответит на многие проблемы, которые некоторые из нас переживают, пытаясь использовать Naudio.
Спасибо.
Отличный ответ. Для правильности позвольте мне указать, что это должен быть Mp3FileReader с нижним регистром «p». – henon