Re: Zeichnen auf Video?
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Zeichnen auf Video?
Zitat:
Zitat:
Sunlight7 hat in einem anderen Thread folgendes geschrieben: Gelegentlich gibt die Eigenschaft .Mode vom TMediaPlayer Werte aus, die gar net in den TMPModes vorhanden sind :stupid: Solltest Du also das machen, wie es das Beispiel in der OH zeigt kannst Du schon mal einen Crash erleben. :roll: Ähm ne, ich hab mir ne eigene Kompo gebastelt, die MCI direkt anspricht, die TMediaPlayer Kompo hat mich zu sehr genervt und MCI bietet vielmehr Funktionen, als sie der TMediaPlayer anbietet. Zitat:
Net das optimalste, aber mal was zum rumspielen und probieren :cyclops: |
Re: Zeichnen auf Video?
Hi Ihr,
MCI - ja es bietet viiiiiieeeeeeellllle Möglichkeiten - aber nur wenn man weiß wies funktioniert ;-) - Ich hab mal den TMediaPlayer so umgeschrieben bzw. erweitert das man noch einstellen konnte welche Soundkarte er Nutzen soll - (falls mehrere Installiert sind...) So als "DJ-Player" dann halt mit zwei Playern und einem zum Vorhören die dann erst am Mischpult gemixt werden sollen und nicht automatisch.... es hat irgendwann auch mal so einigermaßen Funktioniert - allerdings nur mit Wavdateien da der TMediaPlayer dann für MP3 immer ja den umweg übers deCodieren macht... und da hab ich dann immer nur ne schöne Fehlermeldung bekommen ala "Dieser Befehl wird von Diesem Medium nicht unterstützt!" und ich musste mich sehr sehr lange durch die OH schlagen und hier in der DP suchen bis ich überhaupt mal einen blassen schimmer davon hatte wie das funktioniert... .. ist auch schon ein bisschen länger her Leuchtende Grüße Stefan |
Re: Zeichnen auf Video?
Hi, Also die Trackbar funktioniert jetzt soweit: Wenn das Video spielt wird halt da mitgeschoben und wenn es nicht spielt kann man selber den Schieber bewegen... Ich komm immer nie auf die Funktionen wie z.b. Focused oder das mit dem MediaPlayer.Mode=mpPlaying.. is für mich nich so intuitiv im Moment ^^ ich kenn nur von Basic: if video Playing() ^^ Da konnte man einfach schreiben was man wollte ^^
Und mir kommt es so vor als würde die Delphihilfe mir auch nich alle Befehle ausspucken -.- argh und da is schon wieder ein Problem.. Ich muss ja zwangsläufig die RGB Werte eines Pixels auf dem Video rausfinden können.. mit Canvas.Pixels scheint das irgendwie nich zu funktionieren, bleibt das Canvas wohl unberührt von dem Video? Ich find einfach keine Funktionen sonst die mir Pixeldaten geben.. hm.. |
Re: Zeichnen auf Video?
Hi,
durchforste doch mal selbst die Eigenschaften des TMediaPlayer und vieleicht gibts da irgendwie ein Handel zur eigentlichen Zeichenfläche - weil scheinbar gibt er es ja nicht direkt auf dem Canvas wieder- aber wie du aus dem TColor Wert die RGB Werte raus bekommst weist du? Leuchtende Grüße Stefan |
Re: Zeichnen auf Video?
HI..
also als ich mit Canvas.Pixels die Farben gesucht hab, hab ich die jeweiligen Werte versucht mit GetRValue GetgValue und GetBValue die einzelnen Farbwerte gesucht.. Dann gibts ja da scheinbar noch eine Funktion GetPixel(hdc, nxpos,nypos).. Die gibt mir auch einen Farbwert und mit GetRValue usw. kann ich offensichtlich auch die einzelnen Komponenten rausfinden.. nur.. das klappt bei mir bisher noch nicht auf dem Video.. wobei ich auch nicht so recht weiß was bei 'hdc' hin muss. Also ich hatte diesen Codeschnippsel dazu gefunden:
Delphi-Quellcode:
dc := GetDC(0);
r := GetPixel(dc, Mouse.CursorPos.x, Mouse.CursorPos.Y); ReleaseDC(0, dc); |
Re: Zeichnen auf Video?
Hi Quetzalcoatl,
also h steht meist für handel ;-) und DC würde ich jetzt mal mit Device Context oder so was übersetzen. also ist das das Handel für die Fläche wo er den Pixel her nehmen soll! also genau das was du willst! Jetzt musst du nur noch das handel von der Oberfläche haben wo der Film drauf läuft^^ Ich tippe mal das GetDC(0) dir das Handel deiner Form oder so in der Richtung zurückliefert. Notfalls der Bildschirm ;-) allerdings musst du dann halt erst mal noch den Ausschnitt errechnen wo dein Video überhaupt läuft... hoffe dir helfen zu können! Leuchtende Grüße Stefan PS: Falls ich mich Irre dann bitte ich dringend um Berichtigung - ich will was lernen^^ PPS: Wieso ich das mit dem DC weiß bzw. woher? --> bei OPEN GL muss man auch den DC angeben damit er weiß wo er hinmalen soll! |
Re: Zeichnen auf Video?
Da mein Beitrag von 15:40 Uhr verschwunden is :cry: Nochmals...
Mit Canvas.Pixels würd ich das sowieso net machen, das ist extra langsam X-D Ich weiß jetzt grad net, welche Delphi Version Du hast, jedenfalls haben Panels bei mir kein Canvas, deshalb habe ich mit GetDC und BitBlt einen Schnappschuß gemacht. Screenshot Dann kannst Du es mit ScanLine auf einer Bitmap weiter bearbeiten. @Light: GetDC(0) gibt ein Device Context vom Desktop, nicht vom Fenster ;) |
Re: Zeichnen auf Video?
Hi,
Also mit GetDC(0) krieg ich doch theoretisch dann vom ganzen Bildschirm die Pixeldaten? klappt auch, solange kein Video geladen ist. wenn ich das Video auf dem Panel habe, funktioniert die Funktion nich mehr (nur auf dem Panel nicht) bzw. gibt konstante Werte aus, was aber nicht passen kann. Wie krieg ich denn das Handle von der Oberfläche wo der Film drauf läuft. Habs mit MediaPlayer1.Display.Handle und solchen sachen probiert, aber kommt nix komischer weise.. Theoretisch müsste das doch mit GetDC(0) gehen, funktioniert doch bei allem andern auch, sogar außerhalb des Programms. Wenn ich nebenbei dasselbe Video vom WindowsMediaPlayer, also extern abspielen lasse klappt das mit dem GetPixel perfekt. Hat grad sogar zwischen durch mal in meinem Programm selbst funktioniert, woran das lag hab ich nich rausgefunden, jetzt gehts auf jedenfall nicht mehr.. irgendwie ist das komisch. |
Re: Zeichnen auf Video?
Hm,
also tut mir sehr leid- mehr weiß ich leider auch nicht- überleg genau was war als es funktioniert hat^^ vielleicht war irgend ein anderes Programm "schuld" Leuchtende Grüße Stefan PS: mich würde es schon Interessieren wie es dann funktioniert... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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