Audio live care supraviețuiește sarcinii-întrerupe, spinner centrat, outbound ringback

Fixkamo-internal
Expediere
26 aprilie 2026 la 23:00 UTC
Autor
kamo
Comite
55d121c

Trei soluții coordonate pentru calea audio în apel: 1. AbandoneazăError pe telecomandaAudio.play() (vizibil în consola de producție ca "Cererea play () a fost întreruptă de o nouă cerere de încărcare") a fost reală: A însemnat zero audio la difuzor. Fiecare sesiune a fost reatribuirea SrcObject la distanță-audio element în trei locuri (prim → atașare → ontrack), și fiecare schimbare a rulat o sarcină() care a avortat play anterior () promise. Restructurat SipJsSesssion să dețină unul persistent MediaStream care este legat de elementul audio în Constructor și niciodată nu a realocat mijlocul apelului. La aceasta se adaugă şi piese flux în timp ce negociază (prin obtinereReceivers și pc.ontrack) în loc de înlocuirea pieței angro a fluxului. ataşatRemoteAudio() şi primRemoteAudio() Defensiv re-legătură la fluxul nostru numai atunci când o sesiune de frate are furtul legării (casea de auto-convocare), astfel încât sesiunea live audio ajunge de fapt difuzor. 2. Cercul de legătură-stat nu a fost pe adevărata orizontală popup lui centru, deoarece butonul de respingere încă ocupat 60px slot în flex rând chiar și după decolorare la opacitate 0. Comutat la absolut poziţionare: Butonul de răspuns este ancorat la traduce (-50%, -50%) astfel încât poziția nu depinde niciodată de respingere; respingerea este ancorată pe marginea dreaptă la calc (50% + 24px) și alunecă spre centru în timp ce se estompează sub Accept. 3. Apelurile de ieșire au fost tăcute în perioada de inel 1-3 s, deoarece Calea timpurie a lui Asterisc nu ajunge întotdeauna la un browser SIP client ca audio sonor. Adăugat un element audio inelar separat în SoftphoneProvider care joacă aceeași sursă ton de apel în timp ce isConnecting & & callDirection === 'outbound' & & !isInCall. Rute prin intermediul dispozitivului difuzor (nu al dispozitivului sonerie) și prin utilizări difuzorVolume astfel încât urmează preferințe audio in-call. Oprește pe Înființat / eșuat / anulat. Primed în același timp audio-blocare clic, astfel încât să poată juca fără gest de utilizator fiecare apel.

Toate modificările

Ca ceea ce vezi de transport maritim?

Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.

Pornește gratuit pentru totdeaunaVezi prețurile