我正在使用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作为我的默认播放设备,它不播放音乐时,我的扬声器是默认的,并且消息框返回正确的播放设备名称,所以设备变量没有问题。这里有什么问题?
此外,我试图创建一个新项目并在那里运行代码,它运行起来没有任何问题,所以当项目运行时,我恢复到旧版本,但现在它也不工作了。我删除了debug文件夹,但问题仍然存在。

编辑:我发现我可以通过更改程序的汇编名称来解决这个问题,但我仍然不知道为什么windows阻塞了我的程序?
发布于 2020-02-28 00:28:48
更改程序集名称或创建新项目可以修复问题,但仍然不知道真正的原因是什么。
https://stackoverflow.com/questions/60435282
复制相似问题