Хорошо, я знаю, что это звучит как очень простой вопрос для некоторых, но я действительно застрял здесь. Действительно, я создаю аудиоплеер, используя Naudio, и я понял, что во многих учебниках люди всегда показывать простые способы, чтобы вы начали. Однако, на мой взгляд, они всегда забывают показать, как на самом деле все делается в реальном приложении. Например, при воспроизведении музыки с помощью Naudio я бы сделал что-то вроде:
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.
Спасибо.