J'essaie d'écrire un programme qui détecte si j'ai branché ou débranché mes écouteurs et effectue donc certaines actions. J'utilise Ubuntu 14.04 et grâce à un peu de recherche, j'ai découvert que l'état de connexion écouteur/casque est écrit dans un fichier codec à ce chemin -/proc/asound/card0. Le fichier spécifique contenant les informations d'état est le codeC# 0.txt.Watchdog - l'événement on_modified ne se déclenche pas lors du changement de fichier de codec
J'ai écrit un programme Python en utilisant la bibliothèque Watchdog et essayé de comparer cette sortie de fichier codeC# 0 à un état initial de unplugged.txt. Selon que les fichiers correspondent, je veux lancer un lecteur de musique.
Maintenant le code est le suivant; Je n'arrive pas à comprendre pourquoi l'événement on_modified ne se déclenche pas chaque fois que je connecte/déconnecte mes écouteurs de la prise. J'ai vu que la date de modification pour tous les fichiers dans le chemin mentionné ci-dessus change mais mon programme n'imprime pas un message.
code:
import time
import os
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import filecmp
unpluggedStateFile = 'unplugged.txt'
class HeadsetPluginHandler(FileSystemEventHandler):
def on_modified(self, event):
print 'File changed.'
# os.system('cat /proc/asound/card0/codec#0 > pluggedIn.txt')
# print filecmp.cmp(unpluggedStateFile, 'pluggedIn.txt')
if __name__== "__main__":
event_handler = HeadsetPluginHandler()
observer = Observer()
observer.schedule(event_handler, path='/proc/asound/card0', recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
print 'stopped'
observer.join()