CSCore - не работает для определенного устройства c - PullRequest
0 голосов
/ 27 февраля 2020

Я использую CScore для воспроизведения mp3-файла,

сначала, у меня это на моем пабли c частичное 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 в качестве устройства воспроизведения по умолчанию, он не воспроизводит музыку c, когда мои динамики по умолчанию Кроме того, окно сообщения возвращает правильное имя устройства воспроизведения, поэтому нет проблем с переменной устройства. в чем здесь проблема?

также я попытался создать новый проект и запустить там код, и он работал без проблем, поэтому я вернулся к более старой версии проекта, когда он работал, но теперь это тоже не работает. я удалил папку отладки, и проблема по-прежнему возникает.

enter image description here

РЕДАКТИРОВАТЬ: я обнаружил, что могу исправить проблему, изменив имя сборки программы, но я до сих пор не знаю, почему windows блокирует мою программу?

1 Ответ

0 голосов
/ 27 февраля 2020

смена имени сборки или создание нового проекта решает проблему, до сих пор не знаю, какова реальная причина.

...