2010-05-05 110 views
1

當我快速翻轉媒體元素時,我的WPF應用程序似乎崩潰了。 調試使用WinDbg顯示它與下面的堆棧跟蹤崩潰:Windows媒體播放器崩潰

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事件。

其他人碰到這個,如果是的話他們是如何解決它?

回答

0

我爲此在Microsoft上打開了一個支持案例,並找回了一個熱修復程序,注意在我的情況下,它特定於播放XVID/DIVX文件。

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

我的猜測是,XVID編碼解碼器打開兩次一切,關閉它曾經留下一些三分球落後,一些打開的文件句柄爲好。

+0

你可以接受你自己的答案。 – 2015-07-30 14:40:21