Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CSCore:侦听音频会话事件时发生访问冲突 我刚刚开始使用CsCalm,在大量C++之后回到C语言。下面是一个测试程序,它枚举默认音频会话管理器的音频会话,并为每个会话附加一个空事件处理程序: using System; using CSCore.CoreAudioAPI; class Program { static void Main(string[] args) { using (var enumerator = new MMDeviceEnumerator()) using (var device = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia)) using (var sessionManager = AudioSessionManager2.FromMMDevice(device)) using (var sessionEnumerator = sessionManager.GetSessionEnumerator()) { foreach (var control in sessionEnumerator) { var control2 = control.QueryInterface<AudioSessionControl2>(); RegisterAudioSession(control2); } } Console.WriteLine("Waiting..."); Console.ReadKey(); } static void RegisterAudioSession(AudioSessionControl2 session) { if (session.Process != null) { var events = new AudioSessionEvents(); session.RegisterAudioSessionNotification(events); } } } 使用系统; 使用CSCore.CoreAudioAPI; 班级计划 { 静态void Main(字符串[]参数) { 使用(var枚举器=新的MMDeviceEnumerator()) 使用(var device=enumerator.GetDefaultAudioEndpoint(DataFlow.Render,Role.Multimedia)) 使用(var sessionManager=AudioSessionManager2.frommdevice(设备)) 使用(var sessionnumerator=sessionManager.getsessionnumerator()) { foreach(会话计数器中的var控制) { var control2=control.QueryInterface),但未发现明显差异_C#_.net_Visual Studio_Cscore - Fatal编程技术网

C# CSCore:侦听音频会话事件时发生访问冲突 我刚刚开始使用CsCalm,在大量C++之后回到C语言。下面是一个测试程序,它枚举默认音频会话管理器的音频会话,并为每个会话附加一个空事件处理程序: using System; using CSCore.CoreAudioAPI; class Program { static void Main(string[] args) { using (var enumerator = new MMDeviceEnumerator()) using (var device = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia)) using (var sessionManager = AudioSessionManager2.FromMMDevice(device)) using (var sessionEnumerator = sessionManager.GetSessionEnumerator()) { foreach (var control in sessionEnumerator) { var control2 = control.QueryInterface<AudioSessionControl2>(); RegisterAudioSession(control2); } } Console.WriteLine("Waiting..."); Console.ReadKey(); } static void RegisterAudioSession(AudioSessionControl2 session) { if (session.Process != null) { var events = new AudioSessionEvents(); session.RegisterAudioSessionNotification(events); } } } 使用系统; 使用CSCore.CoreAudioAPI; 班级计划 { 静态void Main(字符串[]参数) { 使用(var枚举器=新的MMDeviceEnumerator()) 使用(var device=enumerator.GetDefaultAudioEndpoint(DataFlow.Render,Role.Multimedia)) 使用(var sessionManager=AudioSessionManager2.frommdevice(设备)) 使用(var sessionnumerator=sessionManager.getsessionnumerator()) { foreach(会话计数器中的var控制) { var control2=control.QueryInterface),但未发现明显差异

C# CSCore:侦听音频会话事件时发生访问冲突 我刚刚开始使用CsCalm,在大量C++之后回到C语言。下面是一个测试程序,它枚举默认音频会话管理器的音频会话,并为每个会话附加一个空事件处理程序: using System; using CSCore.CoreAudioAPI; class Program { static void Main(string[] args) { using (var enumerator = new MMDeviceEnumerator()) using (var device = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia)) using (var sessionManager = AudioSessionManager2.FromMMDevice(device)) using (var sessionEnumerator = sessionManager.GetSessionEnumerator()) { foreach (var control in sessionEnumerator) { var control2 = control.QueryInterface<AudioSessionControl2>(); RegisterAudioSession(control2); } } Console.WriteLine("Waiting..."); Console.ReadKey(); } static void RegisterAudioSession(AudioSessionControl2 session) { if (session.Process != null) { var events = new AudioSessionEvents(); session.RegisterAudioSessionNotification(events); } } } 使用系统; 使用CSCore.CoreAudioAPI; 班级计划 { 静态void Main(字符串[]参数) { 使用(var枚举器=新的MMDeviceEnumerator()) 使用(var device=enumerator.GetDefaultAudioEndpoint(DataFlow.Render,Role.Multimedia)) 使用(var sessionManager=AudioSessionManager2.frommdevice(设备)) 使用(var sessionnumerator=sessionManager.getsessionnumerator()) { foreach(会话计数器中的var控制) { var control2=control.QueryInterface),但未发现明显差异,c#,.net,visual-studio,cscore,C#,.net,Visual Studio,Cscore,是我在网上找到的关于这个特殊堆栈跟踪的唯一参考,它已经被解决了。显然它是在Flash Player 19.0.0.159中解决的,但据我所知,该源代码不可供阅读 我是否忽略了代码中的错误,或者这是CSCore中的错误?结果表明,如果目标平台是32位的(或者在我的情况下是“任何CPU”,但在32位VS进程中运行),则会发生此崩溃。切换到64位目标平台为我修复了此问题 > AudioSes.dll!CLockedList<ATL::CComPtr<IAudioSessionEv

是我在网上找到的关于这个特殊堆栈跟踪的唯一参考,它已经被解决了。显然它是在Flash Player 19.0.0.159中解决的,但据我所知,该源代码不可供阅读


我是否忽略了代码中的错误,或者这是CSCore中的错误?

结果表明,如果目标平台是32位的(或者在我的情况下是“任何CPU”,但在32位VS进程中运行),则会发生此崩溃。切换到64位目标平台为我修复了此问题

>   AudioSes.dll!CLockedList<ATL::CComPtr<IAudioSessionEvents>,0,1>::ForEachEntry() Unknown
AudioSes.dll!CAudioSessionControl::OnAudioSessionEvent()    Unknown
AudioSes.dll!CAudioSessionControl::CAudioSessionNotificationDelegator::OnMediaNotification(struct MEDIA_NOTIFICATION_BLOCK *)   Unknown
MMDevAPI.dll!CMediaNotifications::OnMediaNotificationWorkerHandler(struct _TP_CALLBACK_INSTANCE *)  Unknown
MMDevAPI.dll!CMediaNotifications::MediaNotificationWorkerHandler(struct _TP_CALLBACK_INSTANCE *,void *) Unknown
ntdll.dll!TppSimplepExecuteCallback()   Unknown
ntdll.dll!TppWorkerThread() Unknown
kernel32.dll!@BaseThreadInitThunk@12()  Unknown
ntdll.dll!__RtlUserThreadStart()    Unknown
ntdll.dll!__RtlUserThreadStart@8()  Unknown