я использую CScore для воспроизведения mp3 файла,
во-первых, у меня есть это на моем общедоступном частичном public MMDevice SelfDevice;
затем я получаю устройство воспроизведения по умолчанию с этим кодом: -
MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
SelfDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console);
теперь selfDevice
имеет устройство воспроизведения по умолчанию. затем я запускаю этот код для воспроизведения mp3-файла
if (CSCore.SoundOut.WasapiOut.IsSupportedOnCurrentPlatform)
_soundOutToSelf = new CSCore.SoundOut.WasapiOut() { Device = SelfDevice };
else
_soundOutToSelf = new DirectSoundOut();
var source = CodecFactory.Instance.GetCodec(pathToMP3())
.Loop()
.ChangeSampleRate(32000)
.ToSampleSource()
.AppendSource(Equalizer.Create10BandEqualizer)
.ToWaveSource();
_soundOutToSelf.Initialize(source);
_soundOutToSelf.Play();
_soundOutToSelf.Volume = 1;
MessageBox.Show(SelfDevice.FriendlyName);
это работает, но только когда я устанавливаю свой HDMI Audio в качестве устройства воспроизведения по умолчанию, он не воспроизводит музыку, когда мои динамики установлены по умолчанию, также окно сообщений возвращает правильное имя устройства воспроизведения, поэтому нет проблем с переменной устройства. в чем проблема?
Кроме того, я попытался создать новый проект и запустить там код, и он работал без проблем, поэтому я вернулся к более старой версии проекта, когда он работал, но теперь он тоже не работает. я удалил папку отладки, и проблема все еще возникает.
РЕДАКТИРОВАТЬ: я обнаружил, что могу решить проблему, изменив имя сборки программы, но я до сих пор не знаю, почему Windows блокирует мою программу?