C# CSCore-不适用于特定设备
我正在使用CScore播放mp3文件 首先,我在我的公共部分C# CSCore-不适用于特定设备,c#,cscore,C#,Cscore,我正在使用CScore播放mp3文件 首先,我在我的公共部分公共MMDevice SelfDevice上有这个 接下来,我使用以下代码获取默认播放设备:- MMDeviceEnumerator enumerator = new MMDeviceEnumerator(); SelfDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console); 现在,selfDevice具有默认播放设备。 然后,我运行这个代码
公共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音频设置为默认播放设备时,当我的扬声器处于默认状态时,它才会播放任何音乐,而且messagebox会返回正确的播放设备名称,因此设备变量没有问题。这里有什么问题
另外,我尝试创建一个新项目并在那里运行代码,它运行起来没有任何问题,所以我在项目运行时恢复到了旧版本,但现在它也不工作了。
我删除了调试文件夹,但问题仍然存在
编辑:我发现我可以通过更改程序的assemblyname来解决问题,但我仍然不知道为什么windows会阻止我的程序?更改assemblyname或创建新项目可以解决问题,但仍然不知道真正的原因是什么