CSCore - 不适用于特定设备
CSCore - not working for a specific device
我正在使用 CScore 播放 mp3 文件,
首先,我的 public 部分有这个 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 音频设置为我的默认播放设备时,当我的扬声器处于默认状态时它不播放音乐,而且消息框返回正确的播放设备名称,所以没有问题设备变量。这里有什么问题?
另外,我尝试创建一个新项目 运行 那里的代码并且它工作没有任何问题,所以当它工作时我恢复到项目的旧版本,但现在它不工作任何一个。
删除了debug文件夹,问题依旧
编辑:我发现我可以通过更改程序的程序集名称来解决问题,但我仍然不知道为什么 windows 阻止了我的程序?
更改程序集名称或创建新项目可以解决问题,仍然不知道真正的原因是什么。
我正在使用 CScore 播放 mp3 文件,
首先,我的 public 部分有这个 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 音频设置为我的默认播放设备时,当我的扬声器处于默认状态时它不播放音乐,而且消息框返回正确的播放设备名称,所以没有问题设备变量。这里有什么问题?
另外,我尝试创建一个新项目 运行 那里的代码并且它工作没有任何问题,所以当它工作时我恢复到项目的旧版本,但现在它不工作任何一个。 删除了debug文件夹,问题依旧
编辑:我发现我可以通过更改程序的程序集名称来解决问题,但我仍然不知道为什么 windows 阻止了我的程序?
更改程序集名称或创建新项目可以解决问题,仍然不知道真正的原因是什么。