【发布时间】:2019-08-23 16:55:12
【问题描述】:
不确定它是否与 Ionic 有关,但是当页面加载时,我有一个播放声音的按钮。
如果我点击那个按钮 - 声音会播放。
然后,我想从那个按钮播放相同的声音 - 但是当页面加载时,所以当页面加载时 - 会播放声音,当您点击该按钮时 - 会播放相同的声音。
NotAllowedError: The play method is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
我尝试使用ionViewDidEnter、setTimeout 5 秒...但我不断收到此错误消息的权限...
更新 - MEI 分数
我故意将我的权限设置为Auto play sound: Block 以找到正确的解决方案。
我可以根据以下说法提高MEI分数:
在桌面上,用户的媒体参与指数阈值已达到 交叉,表示用户之前播放过有声视频。
这意味着: - 如果在前几页的某处 - 我发出了声音 - 切换到任何其他页面 - 也会触发声音。 - 或有效的点击(加载无声的声音只是为了“收集”权限) - 也可以解决问题..
指望这一点 - 第一次加载 Ionic 项目时,然后正在加载 home.page.ts,这里的技巧是,当我单击菜单项以选择要转到的内页时 -> 这是被认为是有效 click 允许播放音频文件的事件 - 其中声音之前不起作用(因为我一直在刷新同一页面而没有任何点击) - 现在可以在页面切换上使用..
更新背景音乐(视频游戏)
找到这个帖子...我认为这是唯一的方法 How to make audio autoplay on chrome
【问题讨论】:
-
即使我遇到同样的错误,原因可能是 chrome 浏览器的媒体参与度得分。
navigator.getUserMedia({audio: true}, (success) => console.log(success), error => {console.warn(error.toString());}); -
如果您的问题与 MEI 分数有关,并且如果您发现任何指南显示如何改进以提高 MEI 分数,请在此处发布@Ricky
-
所以
navigator.getUserMedia给了我TypeError: navigator.getUserMedia is not a function,所以我使用了navigator.mediaDevices.getUserMedia(- 响应:Promise { <state>: "rejected" }.. 然后我点击那个发出声音的按钮 - 并重试了那个代码 - 响应仍然“被拒绝”……(?!)