Bonjour,

je cherche à lire deux audios différents mais différés de 5 secondes. Donc finalement il faut que j'appelle la première fonction qui me permet de lire le 1er audio puis la 2ème fonction (pour le 2eme audio) se lance 5s après.
J'ai d'abord essayé avec un "time.sleep()" classique mais forcément la lecture du 1er audio est arretée aussi alors que je veux qu'elle continue...

J'ai tenté ensuite avec le programme ci-joint, les lignes concernant le delai de 5s sont aux dernières lignes. Pourtant en le lançant, mes deux audios sont joués simultanément et non en différé malgré le "Timer". Est-ce que quelqu'un aurait une idée de l'erreur ? (ou du pourquoi du comment !)

Merci d'avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
import sounddevice as sd
import soundfile as sf
import threading
import time
 
 
Son1= 'audio1.wav'
Son2= 'audio2.wav'
 
def audioFunc(audio, nDevice):
    data1, fs1 = sf.read(audio, dtype='float32')
    L1=[]
    for i in range(50):
        L1.append(data1[i])
    print(L1)
    sd.play(data1, fs1, device=nDevice) 
 
#LECTURE AUDIOS
 
duration = len(sf.read(Son2)[0]) # duration of Son2
 
def start_audio1():
    threading.Thread(target = audioFunc(Son1, 5)).start()
 
 
def start_audio2():
    while True: # infinite while-loop
        threading.Thread(target = audioFunc(Son2, 6)).start()
        # pause while-loop for duration of Son2
        time.sleep(duration)
 
#LECTURE DES AUDIOS DIFFERES DE 5 SECONDES
start_audio1()
delay=threading.Timer(5, start_audio2())
delay.start()