Laden...

Prüfen ob Sound gespielt wird...

Erstellt von -Hades- vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.185 Views
-
-Hades- Themenstarter:in
171 Beiträge seit 2007
vor 14 Jahren
Prüfen ob Sound gespielt wird...

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-

2.760 Beiträge seit 2006
vor 14 Jahren

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.