MediaInfo.dll und XProfan

  • So, nach einer Ewigkeit habe ich mich mal wieder an die Tasten gewagt. Ich will ein Programm schreiben, das von Videodateien Eigenschaften ausliest und in eine Tabelle einträgt. Dazu möchte ich die MediaInfo.dll nutzen. Diese ist kostenlos, aber es liegt kein Code für XProfan bei. Den wollte ich natürlich selbst machen, aber ich komme schon recht schnell nicht weiter... :cursing:


    Folgender Code soll die DLL laden (funktioniert) und dann, per DLL, die Testdatei öffnen und schließen. Leider bekomme ich beim Öffnen immer Rückgabewert 0, also Fehler (laut Dokumentation). Die Datei existiert natürlich, aber es wird trotzdem nichts.


    Code
    declare dll&,s$,h&clsdll&=Importdll("D:\\XProfan\\Projekte\\MediaInfo\\MediaInfo.dll","MI_")clsh&=1Print "DLL-Handle: "+Str$(dll&)s$="D:\\Test.mkv"'s$="D:\\XProfan\\Projekte\\MediaInfo\\Test.mkv"Print "FileExists: "+s$+" -> "+Str$(FileExists(s$))Print "Erfolg: "+Str$(MI_MediaInfoA_Open(h&,Addr(s$)))Print "Handle: "+Str$(h&)MI_MediaInfo_Close(h&)print "Warte..."waitinputFreeDLL dll&


    Hat jemand schon Erfahrung mit der DLL? Ich werde nicht mal aus der Hilfe schlau, ob die Variabel "h&", also das Dateihandle, von mir vorgegeben werden soll oder von der DLL vergeben wird.


    Edit: Natürlich bin ich gleich im falschen Forum gelandet, bitte den Beitrag in die DLLs verschieben. :oops:

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • Vielleicht solltest Du als Erstes mal versuchen, den Quellcode auf mehrere Zeilen aufzuteilen. ;)
    So kann ihn niemand testen.


    Gruß
    Roland

    (Intel Duo E8400 3,0 GHz / 4 GB RAM / 250 GB HDD / ATI Radeon HD4770 512 MB / Windows Vista - ausgemustert zum Verkauf)
    AMD Athlon II X2 2,9 GHz / 8 GB RAM / 500 + 1000 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


    http://www.xprofan.de

  • Huch, so ist der natürlich nicht. :8O:

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • Frage: Bitte ist das die DLL von hier: https://mediaarea.net/de/MediaInfo/ ?
    (In Zusammenhang mit 32bit-Profan sollte ich natürlich die 32-bittige DLL nehmen, der Installer will das aber selbst Richtung 64 bit entscheiden. Ich versuch´s glaub ich später nochmal...)

    HP255G7:Win10pro2.004,4*AMD Ryzen3200U@2.60GHz,6+2GB-RadeonVega/237GBSSD:intlDVDRW,3xUSB3 ext4TB-HDX,XProfanX3+Xasm/Xpse

  • p. specht: Jo. Die DLL kann man einzeln laden, mit Beispielen und Quellcode.


    Es ist mir schon fast peinlich, da ich eigentlich dachte, dass ich ganz ok programmieren kann. <X

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • Da ich in einem anderen Thread gerade an die Fähigkeiten von MCI-Befehlen erinnert wurde: Hilft hier nicht vielleicht überhaupt gleich das hier? (Ich nehme an, die DLL macht es nicht viel anders)
    Gerade gesehen: Unsinn - ziehe meinen peinlichen Beitrag hiermit zurück...
    *genier*

    HP255G7:Win10pro2.004,4*AMD Ryzen3200U@2.60GHz,6+2GB-RadeonVega/237GBSSD:intlDVDRW,3xUSB3 ext4TB-HDX,XProfanX3+Xasm/Xpse

  • Ansi/Unicode könnte ein Grund für das nicht funktionieren sein. Ein anderer Grund: nicht alle Funktionen sind implementiert.


    Hier kann man sich schlau machen: SDK bzw. FAQ (click it)

    Programmieren, das spannendste Detektivspiel der Welt.

  • Hab ANSI und Unicode probiert. Die Funktion zum Dateiöffnen ist auch implementiert. :( Da werde ich mich wohl mal in das Delphi-Beispiel reinfitzen müssen.

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • ...das ist natürlich auch eine Möglichkeit. Werde ich morgen mal probieren, danke für den Hinweis.


    ...und dann kommen sicher die nächsten Fragen. :lol:

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • Bereich geht auch nicht. Wenn ich nicht mal die Datei öffnen kann, wie soll ich sie dann verarbeiten. ich krieg hier noch 'ne Krise... :thumbdown:

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • Wenn ich mir das so ansehe, müßte es aber Addr(h&) heißen für das Handle. Ist als Typ IntPtr, also Zeiger auf einen Int angegeben. Anders könnte die Funktion ja auch das Handle gar nicht über die Variable zurück geben. Macht aber auch keinen Unterschied, der Testcode tut das Gleiche, der Wert in Handle wird durch Open nicht verändert :??:


    Gruß Volkmar

  • Hallo Volkmar,
    könnte stimmen, aber ich weiß leider immer noch nicht ob ich der DLL das Handle vorgebe oder ob sie eins vergibt. Da werde ich auch aus der Hilfe nicht schlau.
    Ich werde mal über Ostern weiterschnüffeln.

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • So richtig ist mir das auch nicht klar. In einem Demo wird ja auch mit MediaInfo_New ein Handle erzeugt. Allerdings wird das in dem Demo, wenn ich das richtig sehe, schon vor der weiteren Arbeit wieder gelöscht.


    Gruß Volkmar

  • Ich hab heut und morgen Nachtschicht. Aber über Ostern fitze ich mich mal richtig rein.


    Wenns nichts wird muss ich eben bei den einfachen Dingen bleiben.[Blockierte Grafik: https://i.imagebanana.com/img/xaefgobd/hello_world_oc.png]

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • Die Erzeugung des Handles mit MediaInfo_New fehlt in Deinem Code. So geht es:

    Gruß
    Roland

    (Intel Duo E8400 3,0 GHz / 4 GB RAM / 250 GB HDD / ATI Radeon HD4770 512 MB / Windows Vista - ausgemustert zum Verkauf)
    AMD Athlon II X2 2,9 GHz / 8 GB RAM / 500 + 1000 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


    http://www.xprofan.de

    Einmal editiert, zuletzt von RGH ()

  • Und so bekommst Du die ganze Information über die Datei:

    (Intel Duo E8400 3,0 GHz / 4 GB RAM / 250 GB HDD / ATI Radeon HD4770 512 MB / Windows Vista - ausgemustert zum Verkauf)
    AMD Athlon II X2 2,9 GHz / 8 GB RAM / 500 + 1000 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


    http://www.xprofan.de

  • Wow, danke Roland. Auf die Idee mit New wäre ich nicht so schnell gekommen. Das ist doch recht kompliziert gemacht, aber sicher Standard.


    Da bastel ich mal eine Include zusammen. :thumbup:


    roland: Da du mehr Einblick in Delphi hast: Kannst du eventuell noch auf die Schnelle rausfinden, wie ich MediaInfo_Get einzelne Elementa abfragen kann?

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

    Einmal editiert, zuletzt von Jac de Lad ()

  • Es reicht ein New zu Beginn, um die DLL zu initialisieren und ein Delete am Ende des Prorammes. Dazwischen kann man seine Dateien untersuchen: Open - Inform - Close.
    Das Close dient dazu, die untersuchte Datei wieder freizugeben. Wenn es weggelassen wird, gibt es keine Fehler, aber die Datei kann möglicherweise vor Beenden des Programmes nicht von anderen Programmen geöffnet werden.

    Gruß
    Roland

    (Intel Duo E8400 3,0 GHz / 4 GB RAM / 250 GB HDD / ATI Radeon HD4770 512 MB / Windows Vista - ausgemustert zum Verkauf)
    AMD Athlon II X2 2,9 GHz / 8 GB RAM / 500 + 1000 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


    http://www.xprofan.de

    Einmal editiert, zuletzt von RGH () aus folgendem Grund: CLOSE und DELETE verwechselt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!