2017-03-03 68 views
0

我正在嘗試使用Windows Media Foundation。Windows媒體基金會在EVR中定位視頻

我已創建了一個示例應用程序,如下鏈接描述:使用MFCreateAggregateSource

在EVR渲染我能夠聽到的音頻
https://msdn.microsoft.com/en-us/library/windows/desktop/ms703190(v=vs.85).aspx

在上述例子中我已經添加了兩個視頻流這兩個視頻,但我只能看到第一個加載的視頻。

我想單獨定位的視頻使用下面的代碼,所以,無論是視頻將在窗口中看到:

if (status == MF_TOPOSTATUS_READY) 
{ 

HRESULT hr1 = MFGetService(m_pSession, MR_VIDEO_MIXER_SERVICE,IID_PPV_ARGS(&m_pVideoMixerControl)); 

MFVideoNormalizedRect objRect1; 
objRect1.left = 0; 
objRect1.top = 0; 
objRect1.right = 100; 
objRect1.bottom = 100; 
m_pVideoMixerControl->SetStreamOutputRect(0, &objRect1); 

MFVideoNormalizedRect objRect2; 
objRect2.left = 105; 
objRect2.top = 0; 
objRect2.right = 200; 
objRect2.bottom = 200; 
m_pVideoMixerControl->SetStreamOutputRect(1, &objRect2); 

hr = StartPlayback(); 
} 

但我沒有看到在視頻這個代碼的任何影響或任我無法單獨在一個播放器中放置兩個視頻流。

我在做什麼錯,或者如何在Windows Media Foundation中完成它。 MFVideoNormalizedRect的

回答

1

值的範圍是0.0到1.0:MFVideoNormalizedRect

實施例:

objRect1.left = 0.0; //必須在0.0到1.0的範圍內

objRect1.top = 0.0; //必須在0.0到1.0的範圍內

objRect1.right = 0.5; //必須在0.0到1.0的範圍內

objRect1.bottom = 0.5; //必須在0.0到1.0的範圍內