CSCore-不适用于特定设备

时间:2020-02-27 14:18:41

标签: c# cscore

我正在使用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音频设置为默认播放设备时,当我的扬声器默认情况下它才播放音乐,并且消息框返回正确的播放设备名称,因此设备变量没有问题。这是什么问题?

此外,我尝试创建一个新项目并在该代码中运行代码,并且该代码没有任何问题,因此在该项目正常运行时,我将其恢复为该项目的旧版本,但现在也无法正常工作。 我删除了调试文件夹,问题仍然存在。

enter image description here

编辑:我发现可以通过更改程序的程序集名称来解决此问题,但是我仍然不知道为什么Windows阻止了我的程序?

1 个答案:

答案 0 :(得分:0)

更改程序集名称或创建新项目可以解决该问题,但仍然不知道真正的原因是什么。

相关问题