Videofarbquelle
[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]
Anmerkung
[Veraltet. Diese API kann aus zukünftigen Versionen von Windows entfernt werden.]
Die Videofarbquelle erstellt ein fortlaufendes Videobild einer Volltonfarbe.
Klassen-ID (CLSID): {0CFDD070-581A-11D2-9EE6-006008039E37}
CLSID-Variablenname: CLSID_ColorSource
Eigenschaften
Eigentum | Art | Vorgabe | Beschreibung |
---|---|---|---|
"Farbe" | DWORD- | 0 | Gibt die zu generierende Farbe an. Siehe Anmerkungen. |
Bemerkungen
Die Videofarbquelle wird mit Quellobjekten verwendet. Erstellen Sie zunächst ein neues Quellobjekt. Legen Sie dann die UNTERobjekt-GUID des Quellobjekts auf CLSID_ColorSource fest, indem Sie die IAMTimelineObj::SetSubObjectGUID-Methode aufrufen.
Um die Farbe festzulegen, erstellen Sie ein Property Setter--Objekt, und wenden Sie die Eigenschaft "Color" bei Null an. Der Wert dieser Eigenschaft ist eine Hexadezimalzahl mit dem Format 0xAARRGGBB, wobei AA- der Alphawert ist, RR- der rote Wert ist, GG der grüne Wert ist und BB- der blaue Wert ist. Alphawerte reichen von 0x00 (transparent) bis 0xFF (undurchsichtig). Die Eigenschaft ist statisch und muss bei Null angewendet werden.
Wenn Sie den Alphawert nicht angeben, wird standardmäßig null (transparent) festgelegt. In einem 32-Bit-Videoprojekt verursacht dies Übergänge oder Effekte, die Alpha verwenden, um die Videofarbquelle vollständig transparent zu rendern. Um sicher zu sein, geben Sie immer das Alpha an. Beispielsweise ist undurchsichtiges Schwarz 0xFF000000.
Das folgende Codebeispiel zeigt, wie dieses Objekt verwendet wird. Weitere Informationen zur Verwendung von IPropertySetterfinden Sie unter Festlegen von Eigenschaften für Effekte und Übergänge:
DWORD dwYellow = 0xFFFF00;
IAMTimelineObj *pSource = NULL;
// Create the source.
HRESULT hr = pTimeline->CreateEmptyNode(&pSource, TIMELINE_MAJOR_TYPE_SOURCE);
if (SUCCEEDED(hr))
{
hr = pSource->SetStartStop(0, 50000000);
}
if (SUCCEEDED(hr))
{
hr = pSource->SetSubObjectGUID(CLSID_ColorSource);
}
// Create a property setter.
if (SUCCEEDED(hr))
{
IPropertySetter *pProp = NULL;
hr = CoCreateInstance(CLSID_PropertySetter, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pProp));
if SUCCEEDED(hr))
{
// Set the color.
DEXTER_PARAM param;
DEXTER_VALUE val;
param.Name = SysAllocString(OLESTR("Color"));
param.dispID = 0;
param.nValues = 1;
if (param.Name == NULL)
{
hr = E_OUTOFMEMORY;
}
else
{
val.v.vt = VT_I4;
val.v.lVal = dwYellow;
val.rt = 0; // Time must be zero.
val.dwInterp = DEXTERF_JUMP;
hr = pProp->AddProp(param, &val);
SysFreeString(param.Name);
}
if (SUCCEEDED(hr))
{
hr = pSource->SetPropertySetter(pProp);
}
pProp->Release();
}
}
Das folgende Beispiel zeigt die XML-Darstellung des objekts, das im vorherigen Beispiel erstellt wurde. In diesem Fall unterstützt das Param--Element bei oder linearen Elementen nicht, da das Objekt keine dynamischen Eigenschaften unterstützt:
<clip start="0" stop="5" clsid="{0CFDD070-581A-11D2-9EE6-006008039E37}">
<param name="Color" value="16776960"/>
</clip>