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