Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Darstellungsproblem Windows Media Player ActiveX (https://www.delphipraxis.net/212244-darstellungsproblem-windows-media-player-activex.html)

hotrs02 10. Jan 2023 16:12

Darstellungsproblem Windows Media Player ActiveX
 
Hi *.*,

gegeben ist in Delphi 11.2 eine von TCustomPanel abgeleitete Komponente, welche neben einem TTabControl (Align = alTop) das Windows Media Player ActiveX Steuerelement (Align = alClient) beinhaltet. Die Eigenschaft Parent des ActiveX-Steuerelements wird auf die abgeleitete Panel-Komponente gesetzt.

Verwendet wird die Panel-Komponente in einer TScrollBox-Instanz, welche wiederum in verschiedenen verschachtelten Komponenten sitzt (verschiedene TPanel-Instanzen und ein oder mehrere TFrame-Instanzen). Alle diese Komponenten werden dynamisch zur Laufzeit erzeugt, dem ActiveX-Steuerelement wird eine WAVE-Datei zugeordnet.

Hierbei ergibt sich das Problem, dass das ActiveX-Steuerelement nicht korrekt dargestellt wird. Es erscheint nur ein einfarbiger Bereich, der auch teilweise das TTabControl-Element überlagert. Von außen gesteuert wird die WAV-Datei allerdings korrekt wiedergegeben, jedoch ohne irgendwelche visuellen Anzeigen.

Setze ich die Eigenschaft Parent der abgeleiteten Panel-Komponente auf Application.MainForm, so wird das ActiveX-Steuerelement korrekt angezeigt (wenn auch falsch platziert) und lässt sich auch normal bedienen. Dabei ist es egal, ob das alte Windows Media Player ActiveX Steuerelement (msdxm.ocx) oder die aktuelle Version (wmp.dll) zum Einsatz kommt. Des weiteren funktioniert der (nahezu) gleiche Code mit Delphi 5 übersetzt auf dem gleichem System problemlos (nur msdxm.ocx getestet).

Ich hatte erst an ein allgemeines Problem mit ActiveX-Steuerelementen gedacht. Allerdings funktioniert ein Adobe Acrobat Reader ActiveX-Steuerelement (mit einer zugewiesenen PDF-Datei) an Stelle des Windows Media Player ActiveX-Steuerelements auch in Delphi 11 problemlos.


Ist jemanden dieses Problem ggf. schon einmal untergekommen oder hat eine Idee, wo man da noch ansetzen könnte?

Grüße

Bernhard Geyer 10. Jan 2023 16:36

AW: Darstellungsproblem Windows Media Player ActiveX
 
Der Mediaplayer setzt auf eine Uraltschnittstelle auf.
Wir haben deshalb vor Jahren TWebBrowser und eine kleine html-Datei um Embedden genommen.
Mittlerweile nutzen wir hierfür TEdgeBrowser.

hotrs02 11. Jan 2023 07:50

AW: Darstellungsproblem Windows Media Player ActiveX
 
Es geht hier nicht um Vcl.MPlayer.TMediaPlayer, welches nach meinem Kenntnisstand noch das alte Media Control Interface (MCI) verwendet, sondern um das ActiveX-Steuerelement des zum Betriebssystem gehörenden Windows Media Player. Und letzteres verwendet soweit mir bekannt ist seit Windows Vista die aktuelle Schnittstelle Media Foundation.

Bernhard Geyer 11. Jan 2023 10:57

AW: Darstellungsproblem Windows Media Player ActiveX
 
Ah stimmt. Übersehen. Da steht ActiveX...

hotrs02 25. Jan 2023 08:51

AW: Darstellungsproblem Windows Media Player ActiveX
 
Da ich keine Lösung für das Problem gefunden habe und es primär um das Abspielen von WAV-Dateien ging, habe ich kurzerhand eine neune Komponente erstellt, die auf den Windows Media Foundation beruht und hier die IMFMediaEngine Schnittstelle verwendet.

Da mit dieser Schnittstelle neben Audio auch Video abgespielt werden kann, wird die Komponente wohl über kurz oder lang auch unsere selbst entwickelte DirectShow-Komponente zum Abspielen von Videos ersetzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz