Воспроизвести звук в Angular 4

Я работаю над Electron app с Angular 4. Я хочу воспроизвести звук при определенных действиях. Есть ли для этого модуль или код? Он может быть в Angular 4, или если электрон предоставляет некоторую услугу для этого, он также должен работать

Как я хочу воспроизвести его при некоторых действиях, я не могу использовать HTML-тег и аудио() javascript

Я хочу играть только 2-3 секунды, поэтому никаких других функций не требуется.

Это может быть электрон или Angular 4, любой из них может работать...

Ответ 1

только что сделал это в проекте я работаю (угловой 4), и это сработало

playAudio(){
  let audio = new Audio();
  audio.src = "../../../assets/audio/alarm.wav";
  audio.load();
  audio.play();
}
this.playAudio();

убедитесь, что путь правильный и ссылается на существующее аудио

Ответ 2

Согласно комментарию Робина, я проверил эту ссылку, которую мы можем использовать, используя объект audio() в файле ts, например так:

this.audio = new Audio();
this.audio.src = "../../../assets/sounds/button_1.mp3";
this.audio.load();
this.audio.play();

Ответ 3

обновлено: у меня была та же проблема, и я использовал ссылку ViewChild с ElementRef для решения этой проблемы.

app.component.ts

@ViewChild('audioOption') audioPlayerRef: ElementRef;

onAudioPlay(){
  this.audioPlayerRef.nativeElement.play();
}

app.component.html

   <audio #audioOption>
       <source src='../*.mp3' type="audio/mp3">
   </audio>

Ответ 4

Вы можете попробовать использовать howler.js
Вы можете установить его в свой проект с npm install --save howler и воспроизвести такой звук:

var sound = new Howl({
  src: ['sound.mp3']
});

sound.play();

Ответ 5

Код Asmon хорош, но я думаю, что реальная проблема в том, что политика Google Chrome была обновлена, на этой странице https://developers.google.com/web/updates/2017/09/autoplay-policy-changes#webaudio Вы можете найти ответ. В заключение следует обратить внимание на это.

Правила автозапуска Chrome просты:

Приглушенный автовоспроизведение всегда разрешено. Автозапуск со звуком разрешен, если: Пользователь взаимодействовал с доменом (нажмите, нажмите и т.д.). На рабочем столе пользовательское пороговое значение индекса вовлеченности мультимедиа превышено, что означает, что пользователь ранее воспроизводил видео со звуком. На мобильном телефоне пользователь [добавил сайт на свой домашний экран]. Верхние кадры могут делегировать разрешение автозапуска для своих фреймов, чтобы разрешить автоигру со звуком.

Ответ 6

playSound(sound) {
    sound = "../assets/sounds/" + sound + ".mp3";
    sound && ( new Audio(sound) ).play()
  }

Где sound - это имя файла, если вам нужен этот метод для повторного использования.