我正在使用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音频设置为默认播放设备时,当我的扬声器默认情况下它才播放音乐,并且消息框返回正确的播放设备名称,因此设备变量没有问题。这是什么问题?
此外,我尝试创建一个新项目并在该代码中运行代码,并且该代码没有任何问题,因此在该项目正常运行时,我将其恢复为该项目的旧版本,但现在也无法正常工作。 我删除了调试文件夹,问题仍然存在。
编辑:我发现可以通过更改程序的程序集名称来解决此问题,但是我仍然不知道为什么Windows阻止了我的程序?
答案 0 :(得分:0)
更改程序集名称或创建新项目可以解决该问题,但仍然不知道真正的原因是什么。