Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Prüfen ob Sound gespielt wird...
-Hades-
myCSharp.de - Member



Dabei seit:
Beiträge: 171
Herkunft: Deutschland NRW

Themenstarter:

Prüfen ob Sound gespielt wird...

beantworten | zitieren | melden

Hi,

ich versuche jetzt seit einigen Stunden zu prüfen ob ein bestimmter Sound gerade abgespielt wird (eine .wav Datei).
Ich habe es erst mit einem Filesystemwatcher probiert und alle NotifyFilters gesetzt etc. aber wenn z.B. der Windows Media Player den Sound abspielt werden keine Attribute der Datei verändert und auch wenn andere Programme die Datei abgespielt haben passierte nichts. Ich musste die Datei schon per Hand umbennen oder dergleichen um ein Event auszulösen.

Ein Versuch es über die File Klasse zu machen ist auch gescheitert obwohl ich da auch keinen vernünftigen ANsatz hatte.

Hat vielleicht jemand eine Ahnung wie ich sowas bewerkstellige?

Gruß -Hades-
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

Also da wird kein Weg an der API des Players (sofern vorhanden) vorbei führen da die Datei vom Player ja nur mit Lesezugriff geöffnet wird. Da löst dann auch der FileSystemWatcher nicht aus.
Eine andere Möglichkeit (nur um rauszufinden ob gerade überhaupt Sound abgespielt wird) wäre den Line-Out auf Pegel zu prüfen (k.A. wie das geht).

Es gibt allerdings auch Tools von Sysinternals (jetzt MS) die alle geöffneten Dateien eines Processes anzeigen. Wenn du dir über EnumWindow() alle geöffneten Player holst und weißt wo die Dateien liegen dann kanns du evtl. über irgendeine Windows-API Funktion prüfen welche Dateien der zu dem Fenster gehörende Process gerade im Zugriff hat und welche Endung diese haben. Aber selbst dann ist eine zuverlässige erkennun ob gerade ein Lied abgespielt wird nicht möglich da der Player ja z.B. gerade auf Pause stehen könnte.

Was hast du denn vor? Vielleicht gibt es bessere Wege.
private Nachricht | Beiträge des Benutzers