Javascript 播放角度为4的声音

Javascript 播放角度为4的声音,javascript,angular,audio,electron,Javascript,Angular,Audio,Electron,我正在用Angular 4开发一个电子应用程序。我想在一些特定的动作中播放声音。有任何模块或代码吗?它可以是角4,或者如果电子提供了一些服务,它也应该工作 因为我想在一些动作上播放它,所以我不能使用javascript的HTML音频标记和audio() 我只想播放2-3秒的声音,因此不需要其他功能 它可以是电子的,也可以是角度的,其中任何一个都可以工作…根据Robin的评论,我已经检查了链接,我们可以使用ts文件中的audio()对象使用它,如下所示: this.audio=新音频(); thi

我正在用Angular 4开发一个电子应用程序。我想在一些特定的动作中播放声音。有任何模块或代码吗?它可以是角4,或者如果电子提供了一些服务,它也应该工作

因为我想在一些动作上播放它,所以我不能使用javascript的HTML音频标记和audio()

我只想播放2-3秒的声音,因此不需要其他功能


它可以是电子的,也可以是角度的,其中任何一个都可以工作…

根据Robin的评论,我已经检查了链接,我们可以使用ts文件中的audio()对象使用它,如下所示:

this.audio=新音频();
this.audio.src=“../../../assets/sounds/button_1.mp3”;
this.audio.load();
这个.audio.play();
您可以尝试使用
您可以使用
npm install--save howler
将其安装到项目中,并播放如下声音:

var声音=新的嚎叫({
src:['sound.mp3']
});
声音。播放();

刚刚在一个项目中做了这个,我正在工作(angular 4),它工作了

playAudio(){
让音频=新音频();
audio.src=“../../../assets/audio/alarm.wav”;
load();
音频播放();
}
这个.playAudio();
确保路径正确,并引用已更新的现有音频: 我也遇到了同样的问题,使用ViewChild引用和ElementRef来解决这个问题

app.component.ts

@ViewChild('audioOption')audioPlayerRef:ElementRef;
onAudioPlay(){
this.audioPlayerRef.nativeElement.play();
}
app.component.html



Asmon代码很好,但我认为真正的问题是谷歌浏览器的政策已经更新,在这个页面上你可以找到答案的摘要,重点应该放在这一点上

Chrome的自动播放策略很简单:

  • 始终允许静音自动播放
  • 在以下情况下,允许自动播放声音:
  • 用户已与域交互(单击、点击等)
  • 在桌面上,用户的媒体参与度指数阈值已经超过,这意味着用户以前播放过声音视频
  • 在手机上,用户已[将网站添加到其主屏幕]
  • 顶部框架可以将自动播放权限委托给其iFrame,以允许自动播放声音。
  • playSound(sound) {
        sound = "../assets/sounds/" + sound + ".mp3";
        sound && ( new Audio(sound) ).play()
      }
    
    其中
    sound
    是文件名,如果您需要此方法可重用。

    步骤1 npm安装-保存howler

    步骤2从组件中的嚎叫器导入嚎叫

    步骤3:在功能块内添加以下代码

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

    Howler也处理移动浏览器上的音频,因为这需要通过用户交互“解锁”。解决了我的问题!!它不起作用了!我有这样一条消息:howler.js:2432不允许启动AudioContext。必须在页面上的用户手势后恢复(或创建)。我找到了这个可能的解决方案,并且从角度上为我工作,没有任何问题。这是唯一一个对meIs有效的解决方案。有什么方法可以动态地做到吗?我的意思是用一个变量替换src。以角度的方式,你可以做[src]=''path_to_to_to_your_audio''或src='{{path_to_your_audio}}然后在你的组件中指定path_to_to_to_your_audio dynamiccally如何在这个方法中改变音量?@carte//将音量设置为50%this.audio.volume=0.5;this.audio.load();这个.audio.play();我收到错误-用户代理或平台在当前上下文中不允许播放方法,可能是因为用户拒绝了权限。很抱歉,它的firefox设置问题。必须启用