【问题标题】:Windows media player crashesWindows 媒体播放器崩溃
【发布时间】:2010-05-05 16:29:29
【问题描述】:

当我快速翻转媒体元素时,我的 WPF 应用程序似乎崩溃了。 使用 WinDbg 进行调试显示它崩溃并带有以下堆栈跟踪:

0:028:x86> k 20
ChildEBP RetAddr  
15aff648 07acb2a9 wmp!CMGSessionHost::GetPDFromTopologySourceNode0+0xb
15aff670 07a080fc wmp!CMGSessionHost::IsWindowsMediaContent+0x8a
15aff688 07acd838 wmp!CMGPlayer::HandleOnError+0x2b
15aff6d8 07c9270c wmp!CMGSessionHost::HandleTopologySet+0x583
15aff714 07c928b9 wmp!CMGSessionHost::OnDShowSourceCreated+0x82
15aff720 6e701f7b wmp!CMGSessionHost::OnDShowSourceCreatedAsyncCallback::Invoke+0x16
15aff730 6e701b3c MFPlat!CCompletionPort::InvokeCallback+0x12
15aff838 6e708cab MFPlat!CWorkQueue::CThread::ThreadMain+0xa5
15aff840 74e71287 MFPlat!CWorkQueue::CThread::ThreadFunc+0xd
15aff878 74e71328 msvcrt!_endthreadex+0x44
15aff880 76473677 msvcrt!_endthreadex+0xce
15aff88c 76f79d72 KERNEL32!BaseThreadInitThunk+0xe
15aff8cc 76f79d45 ntdll_76f40000!__RtlUserThreadStart+0x70
15aff8e4 00000000 ntdll_76f40000!_RtlUserThreadStart+0x1b
0:028:x86> u 7a00881
wmp!CMGSessionHost::GetPDFromTopologySourceNode0:
07a00881 8bff            mov     edi,edi
07a00883 55              push    ebp
07a00884 8bec            mov     ebp,esp
07a00886 83ec0c          sub     esp,0Ch
07a00889 8b4508          mov     eax,dword ptr [ebp+8]
07a0088c 8b08            mov     ecx,dword ptr [eax]
07a0088e 56              push    esi
07a0088f 57              push    edi
0:028:x86> r
eax=00000000 ebx=00000000 ecx=15aff668 edx=00010000 esi=00000000 edi=05c53460
eip=07a0088c esp=15aff63c ebp=15aff648 iopl=0         nv up ei pl nz ac pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010216
wmp!CMGSessionHost::GetPDFromTopologySourceNode0+0xb:
07a0088c 8b08            mov     ecx,dword ptr [eax]  ds:002b:00000000=????????

在我看来,打开媒体后来自 windows 媒体播放器内部的回调因空指针而崩溃,因为我更改源太快了。

我在更改源之前停止当前视频,但是我想知道是否应该等到我恢复 MediaOpened 事件后再再次更改源。

其他人遇到过这个问题,如果是,他们是如何解决的?

【问题讨论】:

    标签: video crash windbg wmp


    【解决方案1】:

    我为此向 Microsoft 提出了一个支持案例并返回了一个热修复,请注意在我的案例中它是专门用于播放 XVID / DIVX 文件的。

    http://support.microsoft.com/kb/981880

    我的猜测是 XVID 编解码器会打开所有内容两次,并在留下一些指针和一些打开的文件句柄时将其关闭。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多