typescript - Cum să schimbi programatic dispozitivul de ieșire audio în Angular în interiorul Electron?
Dezvolt o aplicație desktop cu Angular 11 și Electron 12. Aplicația trebuie să poată emite sunete și utilizatorul trebuie să aibă posibilitatea de a schimba dispozitivul de redare audio folosit de aplicație.
Deci, am încercat să folosesc funcția experimentală setSinkId din WebRTC. Electron folosește Chromium, care suportă această funcție. Așadar, în webPreferences din Electron am activat experimentalFeatures.
Acum, problema este că Typescript (v4.2.3) nu recunoaște funcția setSinkId.
Am încercat să fac asta într-un component Angular:
Dar după cum poți vedea, primesc acest mesaj de eroare:
Știu, probabil că Typescript nu suportă încă această caracteristică. Dar atunci, cum pot schimba dispozitivul de ieșire audio în Angular în interiorul Electron?
Răspuns #1
Mai ales când dezvolți o aplicație pentru Electron, tipurile implicite ale TypeScript aici nu sunt foarte utile. setSinkId() este acceptat în Chromium și, prin urmare, este disponibil și în Electron.
Ai putea ajuta puțin TypeScript adăugând în mod explicit definiția tipului pentru setSinkId().
const audio = <HTMLAudioElement & { setSinkId (deviceId: string): void }> new Audio();
audio.setSinkId('the-id-of-the-device');

