Воспроизвести звук в 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
- это имя файла, если вам нужен этот метод для повторного использования.