2017-03-03 10 views
0

私はWindows Media Foundationを試しています。Windows Media FoundationビデオをEVRに配置

リンクの下に記載されているように私は1つのサンプルアプリケーションを作成しました:上記の例で
https://msdn.microsoft.com/en-us/library/windows/desktop/ms703190(v=vs.85).aspx

私はEVRレンダラでMFCreateAggregateSource

を使用して2つのビデオストリームを追加した私は、のオーディオを聞くことができています両方のビデオが、最初に読み込まれたビデオは1つだけしか見ることができません。

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(); 
} 

しかし、私はビデオでこのコードのいずれかの効果を確認するかのいずれかいない:私はビデオの両方がウィンドウに表示されるように、コードの下に使用して個別に動画を配置しようとしています

私は1人のプレーヤーに2つのビデオストリームを別々に配置することができません。

私は間違っていますか、それとも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の範囲にする必要があります

関連する問題