2 votes

Comment lire un fichier wav et faire en sorte que votre code continue de fonctionner en python ?

J'ai ce code qui lit une vidéo, et détecte quelque chose dessus. Chaque fois qu'il détecte quelque chose dans la vidéo, je veux entendre quelque chose, voici le code :

import cv2
import os
video_capture = cv2.VideoCapture('video')
while True:
    _, frame = video_capture.read()
    found = detect_something(frame)
    if found :
        os.system("aplay 'alarm'")
    cv2.imshow('Video',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
video_capture.release()
cv2.destroyAllWindows()

Le problème est qu'à chaque fois que l'alarme est diffusée, la vidéo se fige. Je veux que l'alarme soit diffusée comme un son de fond. Comment faire ?

1voto

Ann Zen Points 18513

Ce dont il a besoin, c'est d'une bande de roulement :

import cv2
import os
from threading import Thread # Import Thread here
video_capture = cv2.VideoCapture('video')

def music(): # Define a function to go in the Thread
    os.system("aplay 'alarm'")

while True:
    _, frame = video_capture.read()
    found = detect_something(frame)
    if found :
        mus = Thread(target=music) # Create a Thread each time found
        mus.start() # Start the Thread as soon as created
    cv2.imshow('Video',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
video_capture.release()
cv2.destroyAllWindows()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X