Je travaille sur un Electron app
with Angular 4. Je veux jouer du son sur une action spécifique. Existe-t-il un module ou un code pour cela? Il peut se trouver dans le angular 4 ou si electron fournit un service pour cela, il devrait également fonctionner
Comme je veux le jouer sur une action, je ne peux pas utiliser les balises audio HTML et audio () de javascript.
Je veux seulement jouer un son de 2-3 secondes, donc aucune autre fonctionnalité n'est nécessaire.
Il peut s'agir d'un électron ou Angular 4 n'importe lequel d'entre eux peut fonctionner ...
vient de faire cela dans un projet je travaille (angulaire 4) et cela a fonctionné
playAudio(){
let audio = new Audio();
audio.src = "../../../assets/audio/alarm.wav";
audio.load();
audio.play();
}
this.playAudio();
assurez-vous que le chemin est correct et fait référence à un audio existant
Selon le commentaire de Robin, j'ai vérifié ce lien que nous pouvons utiliser en utilisant l'objet audio () dans le fichier ts comme ceci:
this.audio = new Audio();
this.audio.src = "../../../assets/sounds/button_1.mp3";
this.audio.load();
this.audio.play();
updated: J'ai eu le même problème et utilisé la référence ViewChild avec ElementRef pour résoudre ce problème.
app.component.ts
@ViewChild('audioOption') audioPlayerRef: ElementRef;
onAudioPlay(){
this.audioPlayerRef.nativeElement.play();
}
app.component.html
<audio #audioOption>
<source src='../*.mp3' type="audio/mp3">
</audio>
Vous pouvez essayer d'utiliser howler.js
Vous pouvez l'installer dans votre projet avec npm install --save howler
et jouer un son comme celui-ci:
var sound = new Howl({
src: ['sound.mp3']
});
sound.play();
Le code Asmon est bon, mais je pense que le vrai problème, c'est que la stratégie Google Chrome a été mise à jour, sur cette page https://developers.google.com/web/updates/2017)./09/autoplay-policy-changes # webaudio vous pouvez trouver la réponse En résumé, l'accent devrait être mis sur ceci.
Les règles de lecture automatique de Chrome sont simples:
playSound(sound) {
sound = "../assets/sounds/" + sound + ".mp3";
sound && ( new Audio(sound) ).play()
}
Où sound
est le nom du fichier si vous souhaitez que cette méthode soit réutilisable.