Office: Access als Mediaplayer

Helfe beim Thema Access als Mediaplayer in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hi zusammen! Seit das Windows Media Center (WMC) tot ist, nutze ich notgedrungen MS Access als schlechten Ersatz. Ich benutze nur die... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Apus melba, 22. Januar 2025.

  1. Access als Mediaplayer


    Hi zusammen!
    Seit das Windows Media Center (WMC) tot ist, nutze ich notgedrungen MS Access als schlechten Ersatz.
    Ich benutze nur die Audiofunktionalität und es funktioniert soweit alles über VBA.
    Was mir fehlt ist die komplette Steuerung der Musikwiedergabe über die IR Fernbedienung des WMCs (IR Empfänger am PC über USB).
    Merkwürdigerweise können Zahlen (z.B. meine CD_ID) über die Fernbedienung direkt in ein Access Formular eingegeben werden, auch die PlayTaste funktioniert.
    Was fehlt sind aber Funktionen wie Pause, Stop, Next, Prev. etc.
    Wer kennt den Code dieser Eingaben und wie kann ich die aus meiner Access-Anwendung an den Windows Media Player weiterleiten?
    Schon mal vielen Dank
     
    Apus melba, 22. Januar 2025
    #1
  2. andyfau
    andyfau Erfahrener User
    Hallo,
    Access als Datenbank für eine Musiksammlung zu nutzen ist wohl eine der häufigsten Anwendungen. Ich meine, die Daten dort zu verwalten, klar. Aber Access nativ als Mediaplayer zu nutzen habe ich noch nicht gesehen. Kannst Du die DB neutral und nur mit einigen Beispieldaten mal hier hochladen? Warum startest Du nicht nur die Audiodatei aus Access mit einem Shell-Befehl auf eine beliebige Audioanwendung und benutzt dann dort die Steuerung? Ansonsten gäbe es noch die Möglichkeit mal die Tastaturcodes der FB in Access in Hex abzufangen um zu sehen, was da ankommt und es dann weiter zu verarbeiten. Im Endeffekt sind es ja alles nur Tastatureingaben wie auch beim Auslesen anderer Eingabegeräte, z.B. eine Barcodescanners.
     
    andyfau, 22. Januar 2025
    #2
  3. Hi Andy, vielen Dank für Deine Infos.
    Ich muss wohl einige Infos noch nachreichen, um mein "Problem" zu erläutern. Meine Access Anwendung läuft auf einem PC, auf entsprechenden Forms kann ich mit Maus und Tastatur alle erforderlichen Eingaben am Bildschirm machen: Zifferneingabe, Start, Stopp, Next etc. Läuft alles problemlos.
    Zum Musik hören möchte ich aber nicht am PC sitzen. Dafür hab ich ein (Samsung) Tablett mit IR Ausgang, auf dem kann ich sehr bequem sowohl in meinen umfangreichen Listen blättern als auch direkt die gewünschte CD ID eingeben (siehe Screenshot) Access als Mediaplayer Ansicht MC FB 1.png und dann startet die Musikwiedergabe.
    Die Ziffern-Eingaben aus dem Tablett werden direkt in dem Eingabefeld des Access-Formulars angezeigt und die Wiedergabe dann gestartet.
    Das funktioniert also, aber ich habe KEINE Abfrage etc. dafür erstellt! Alles gelangt über die WMC IR Empfänger (mit USB Stecker) an den WMP.
    Hier also nochmals meine Fragestellung:
    Wieso kann Access diese Eingaben (Ziffern und Start) empfangen und auswerten, andere Befehle (Stopp, Next, Previous etc.) aber nicht?
    Wie gesagt, ich kann in Access am PC alle Funktionen (für den WMP) per Schaltflächen in entsprechender Form auslösen - nur eben nicht vom Tablett aus.
    Fernbedienung und Empfänger sind alles original MS WMC Teile. Als das WMC noch aktiv war, hat das alles auch vom Tablett aus problemlos funktioniert.

    Was Deinen Vorschlag für das Hochladen einer "einfachen" Form der DB anbelangt: Ich bin mir nicht sicher, ob ich dieses Beispiel überhaupt "zum Laufen" bekommen könnte. Als Umgebung benötigt diese Anwendung ein auf L gemaptes LW (hier liegen die WAV Dateien der CDs). Das wird in (gefühlt) 100 Stellen im Code referiert. Das scheint mir sehr schwierig - oder wie siehst Du das?
    Und ich denke auch, dass dies nicht ursächlich ein Access Problem ist, da ja die "Basisfunktionen" (völlig ohne weiteren Aufwand) in der Anwendung funktionieren.
    Schon mal vielen Dank für Deine Hilfe!
    PS: die Layoutfunktionen der Reports in Access sind unerreicht! Macht richtig Spaß, damit sehr ansprechend formatierte pdfs zu erstellen! Dickes Lob an die Entwickler!!!
     
    Apus melba, 23. Januar 2025
    #3
  4. andyfau
    andyfau Erfahrener User

    Access als Mediaplayer

    Irgendwo in der Access-Anwendung müssen ja die Eingaben aus deiner Fernbedienung ankommen. Um rauszubekommen welche "Codes" da von Access erwartet werden musst Du zuerst diese Stelle(n) im VBA-Code des Eingabeformulars finden. An der Stelle kann man dann eingreifen und die "Kommandos" über Debugging analysieren. Ich vermute fast, dass Access das nicht selbst verarbeitet, sondern dass ein ActiveX-Control oder eine extrene DLL verwendet wurde, wo jetzt Teile nicht mehr funktionieren. Aber ohne die Datenbank zu haben ist das reine Spekulation. Eine fehelnde Laufwerksrefenz ist da eher ein kleines Problem und schnell anzupassen. Eine Hardcopy des Tabletmonitors bringt da garnix.
     
    andyfau, 23. Januar 2025
    #4
  5. Hi Andyfau, sorry, komme erst jetzt zum Antworten.
    Ich hab eine Datei erstellt, mit der hoffentlich mein Problem illustriert werden kann.
    1. beliebige WAV Datei unter c:\Users\All Users\Example.wav einrichten
    2. In frm_Input 123 und [Enter] eingeben
    3. Wiedergabe der Example.wav startet
    4. Schaltflächen PAUSE, PLAY und STOP steuern die Wiedergabe per Maus (Prev und Next deaktiviert, da nur Demo und keine Playlist erstellt wurde)
    Der (Fremd-)Code Public Function Play_PL_P() für die Wiedergabe befindet sich im Modul Routinen. Die Maussteuerung über die Schaltflächen läuft problemlos.
    Nun zur IR Fernbedienungs-Steuerung:
    Ich habe vor einiger Zeit im Web dafür einigen Code gefunden (leider hab ich dafür keine Quellenangaben mehr), er befindet sich im Modul2. In dieser Form ist er aber so nicht lauffähig (kritische Zeilen sind daher auskommentiert)
    1. StartMonitoring() ist die grundlegende Sub
    2. Bei InitMediaPlayer kommt bereits die Fehlermeldung "Methode oder Datenobjekt nicht gefunden".
      Merkwürdig: In meiner Anwendung funktioniert der WMP "einfach so", d.h. er ist nicht (?) explizit deklariert.
    3. StartMonitoring funktioniert aber auch ohne diese Anweisung und ruft CheckRemoteInput() auf.
      Diese Sub reagiert tatsächlich auf die IR Inputs! Leider führt aber jede "WMP.Controls...." Anweisung zu der Fehlermeldung "Objektvariable nicht festgelegt"
    Meine Fragen:
    1. Wie sieht der Code für die erforderlichen Deklarationen aus?
    2. Wie und an welcher Stelle muss StartMonitoring in Public Function Play_PL_P() eingebunden werden?
    Wäre super, wenn Du mir da weiterhelfen könntest. Schon mal vielen Dank für Deine Mühen.
    Gruss Rudi
     
    Apus melba, 26. Januar 2025
    #5
  6. andyfau
    andyfau Erfahrener User
    Hi,
    im Modul2 erfolgt der Api-Aufruf für den Mediaplayer. Wenn Du ein 64bit Office hast, was ich vermute, muss mit PtrSave deklariert werden, was auskommentiert wurde. Die aktuell aktive Declare-Anweisung initialisiert für ein 32bit-System.

    Die Fehlermeldung "Objektvariable nicht festgelegt" resultiert daraus, dass die Set-Anweisungen in der Sub InitMediaPlayer() auskommentiert wurden. Eine der beiden muss gesetzt werden. Welche kann ich nicht sage, weil ich die API nicht kenne.

    Warum es bei einigen Kommandos funktioniert und bei einigen nicht liegt wahrscheinlich daran, dass die gesendeten Hex-Code (siehe Const-Anweisungen) korrospondieren.
    Versuche mal vor dem Stop in CheckRemotenput() ein
    Code:
    dim myvar as Variant
    myvar = GetAsyncKeyState()
    Debug.Print Hex(myVar)
    einzubauen.
    Entsprechend müssen die const-Anweisungen oben angepasst werden. (= &Hxx)

    Denke aber vorher daran die DB zu sichern!
     
    andyfau, 26. Januar 2025
    #6
  7. Hi Andyfau, danke und weitere Infos
    1. Ich benutze Office Prof. Plus 2016 als 32 bit Version
    2. Set-Anweisungen in der Sub InitMediaPlayer() sind auskommentiert, da jede zu einer Kompiler-Fehlermeldung "Methode oder Datenbankobjekt nicht gefunden" führt.
    3. Dein Code am Anfang von CheckRemoteInput() führt in Zeile "myvar = GetAsyncKeyState()" zur Kompiler-Fehlermeldung "Argument ist nicht optional, da kam ich also nicht weiter.
    Vielleicht nochmals zur Klärung:
    • Meine Anwendung und die gesamte Steuerung des WMP laufen problemlos mit Maussteuerung
    • Der Code dazu befindet sich im Modul Routine
    • Alles, was ich über die FB Steuerung gefunden habe, befindet sich in Modul2
    • Ich möchte "nur" meinen bisherigen Code um die Abfrage des IR Inputs erweitern (was sich sicherlich nur einfach anhört)
    Ich bin bisher ziemlich unerfahren, was Erfordernis und Syntax von Set und Dim Anweisungen anbelangt. Ich verstehe also nicht, warum in meiner Anwendung der WMP ohne (für mich ersichtliche) Dim oder Set Anweisung funktioniert, bei allen Versuchen aber, den Code von Modul2 "einzubinden" es zu Fehlermeldungen kommt. Was mache ich da falsch?
    Oder anders ausgedrückt:
    Alles, was in meinem bisherigen Code mit Me.objWindowsMediaPlayer3.... beginnt läuft, alles beginnend mit WMP.Controls.... führt zu Fehlermeldungen.
     
    Apus melba, 28. Januar 2025
    #7
  8. andyfau
    andyfau Erfahrener User

    Access als Mediaplayer

    Hallo, dass es mit Me.objWindowsMediaPlayer3 läuft ist logisch, weil der Mediaplayer als OLE-Objekt im Formulae eingebunden ist und seine Bibliothek, die über extras/Verweise/... eingebunden ist, die Funktionen liefert, die man dann direkt im Formularobjekt (Me.) ansprechen kann. Das hat nix mit der Entgegennahme der Infrarotsignale zu tun.

    Der WMP in Module2 ist nicht das Mediaplayer-Objekt aus dem Formular, sondern eine weitere Instanz des Mediaplayers, der direkt unter den Konstanten dimensioniert mit
    Code:
    Dim WMP as WMPLib.WindowsMediaPlayer
    Damit ist nur für das Objekt Mediaplayer ein Name vergeben. Es muss zumindest noch ein Set kommen, wo der Variablen ein tatsächliches Objekt zugeordnet wird. z.B. in der Sub InitMediaplayer:
    Code:
    Set WMP = Forms!frm_Play_P.objWindowsMediaPlayer3
    Damit agiert man mit dem Mediaplayer aus dem Formular. Die beiden auskommentierten Sets sind da falsch.

    Ich habe leider keinen Infrarotempfänger, sodass ich die ankommenden Codes testen kann.
     
    andyfau, 28. Januar 2025
    #8
  9. Hi Andyfau, vielen Dank für Deine sehr hilfreichen Klarstellungen, hab jetzt den Unterschied zwischen den beiden WMPs verstanden.
    Mir ist es aber noch nicht gelungen, alles zum Laufen zu bringen.
    1. Versuch: zwei Instanzen vom WMP gleichzeitig anzusprechen klappt nicht (vielleicht geht das ja grundsätzlich nicht?)
    • Dim konnte ich als Public WMP As WMPLib.WindowsMediaPlayer in Modul Definitionen problemlos einbinden
    • Aber Set WMP = Forms!frm_Play_P.objWindowsMediaPlayer3 führt immer zum Abbruch, egal, wo ich es versucht habe (in Modul2 u.a. bei Sub StartMonitoring(), oder in Modul Routinen Public Function Play_PL_P() gleich zu Beginn bzw. weiter unten im Code vor 1:
    2. Versuch: nur die eine, funktionierende WMP Instanz (Forms!frm_Play_P.objWindowsMediaPlayer3) verwenden.
    • in Modul2: in StartMonitoring() InitMediaPlayer auskommentiert, dann in Sub CheckRemoteInput() alle WMP.Controls.... durch Forms!frm_Play_P.objWindowsMediaPlayer3.Controls.... ersetzt.
    Das funktioniert insoweit, dass die IR Befehle erkannt werden, aber die Umsetzung auf den laufenden Player noch nicht funktioniert.
    Ich vermute, ich habe noch nicht die richtige Stelle in Public Function Play_PL_P(), an der dies geschieht:
    Routine Public Function Play_PL_P()
    ...
    1:
    If Abbruch = True Then
    GoTo Raus
    End If
    Call StartMonitoring
    ...
    Meine Frage:
    1. An welcher Stelle soll Call StartMonitoring erfolgen?
    2. Was hat es mit den dann verschachtelten DoEvents in den beiden Prozessen auf sich? Können die so bleiben oder muss etwas gelöscht werden?
    Danke für Deine Hilfe
    Rudi
     
    Apus melba, 30. Januar 2025
    #9
  10. andyfau
    andyfau Erfahrener User
    Ich habe nochmal geschaut. Das ist ziemlich vertrackt, weil alles asynchron, timergesteuert abläuft und dann wird mit DoEvents irgendwie zwischen den Prozessen gesprungen. Erschließt sich mir nicht ohne mal zu debuggen. Kannst Du denn im Einzelschritt (F8) durchgehen? Dann müsste doch die Stelle zu finden sein wo er jeweils das Remotekommando auswertet.
     
    andyfau, 30. Januar 2025
    #10
  11. Mein Problem sind die verschachtelten Prozesse und die DoEvents. Wenn die Wiedergabe der WAV Datei läuft und ich im Einzelschrittmodus debugge, läuft die Wiedergabe stur parallel durch.
    Ich bin am Experimentieren, an welcher Stelle das "Call StartMonitoring" welchen Effekt hat. Darüber hinaus werden die Befehle in Sub CheckRemoteInput() noch nicht korrekt ausgeführt.
    Erst mal vielen Dank bis hierher. Melde mich wieder, wenn ich weitergekommen bin.
     
    1 Person gefällt das.
Thema:

Access als Mediaplayer

Die Seite wird geladen...
  1. Access als Mediaplayer - Similar Threads - Access Mediaplayer

  2. Smarttags in Access LTE (2021)

    in Microsoft Access Hilfe
    Smarttags in Access LTE (2021): Hallo Leute, Ich hätte da mal eine Frage zu den Smarttags. In meinen uralten Access-Buch von 2003 steht in BSP noch was drinnen von Smarttag in den Eigenschaften die man aktivieren soll. Ich habe...
  3. Excel zu Access

    in Microsoft Access Hilfe
    Excel zu Access: Hallo Suche ein Lösung für eine Umsetzung von Excel zu Access. Die Tabelle KL enthält nebst der Projekt-ID (selbst-erzeugt) diverse Felder: u.a. MessOrte in Form 1,2,3,A,B (=5Messpunkte Split mit...
  4. Access Neuer Datensatz im Formular

    in Microsoft Access Hilfe
    Access Neuer Datensatz im Formular: Hallo - ich bin neu hier und Anfängerin im VBA Programmieren. Ich habe eine Frage zu VBA: In meinem Formular kann ich Daten eingeben, wenn ich das Formular wieder öffne, wird der letzte...
  5. automatische Abfrage URL via Artikelnummer

    in Microsoft Access Hilfe
    automatische Abfrage URL via Artikelnummer: Guten Tag Bei der Aktualisierung der Homepage und aufgrund eines Plugin-Wechsels des Üebersetzungstools hat wordpress alle Permalinks der Produkte verändert. Unserem Webmaster war nicht bekannt,...
  6. Suche: Deutsche Vorlage der Schülerverwaltung DB

    in Microsoft Access Hilfe
    Suche: Deutsche Vorlage der Schülerverwaltung DB: Guten Tag Da bei mir trotz korrekter Einstellungen der Sprache in der MS Office Suite die Vorlagen immer in französischer Sprache heruntergeladen werden, wollte ich kurz fragen, ob mir jemand hier...
  7. Aus Access mehrere Excel-Tabellen in neue Datei speichern

    in Microsoft Access Hilfe
    Aus Access mehrere Excel-Tabellen in neue Datei speichern: Hallo, ich habe eine größere Excel-Datei, aus der ich drei Tabellenblätter als neue Excel-Datei abspeichern möchte. Das Ganze soll per VBA aus Access heraus funktionieren. Ich habe es versucht...
  8. Word Access VBA Fußzeile formatieren

    in Microsoft Access Hilfe
    Word Access VBA Fußzeile formatieren: Guten Tag allerseits. Ich möchte über Access VBA ein Word Dokument erstellen. Das funktioniert soweit aus. Mite diesem Code formatiere ich die Fußzeile: ' ' Seitennumerierung in Fußbereich '...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden