php - Firefox中音频文件的php“echo”功能问题
问题描述
我创建了一个小函数,它根据用户收到的通知数量播放音频文件。我将此功能放在 wordpress 页脚中。
这是代码:
function custom_um_notification_sound() {
$uno = "<audio src='https://www.example.com/note1itaen1.mp3' autoplay></audio>";
$due = "<audio src='https://www.example.com/note1itaen2.mp3' autoplay></audio>";
$tre = "<audio src='https://www.example.com/note1itaen3.mp3' autoplay></audio>";
$quattro = "<audio src='https://www.example.com/note1itaen4.mp3' autoplay></audio>";
$cinque = "<audio src='https://www.example.com/note1itaen5.mp3' autoplay></audio>";
$new = "<audio src='https://www.example.com/note1itaenall.mp3' autoplay></audio>";
$unread = (int)UM()->Notifications_API()->api()->get_notifications( 0, 'unread', true );
if ( !is_user_logged_in() ) {
return;
}
if (!isset($_COOKIE['notifaudio'])) {
if ( $unread == 1 ) {
echo $uno;
setcookie("notifaudio", "notiaudio", time()+3600, COOKIEPATH, COOKIE_DOMAIN );
}
if ( $unread === 2 ) {
echo $due;
setcookie("notifaudio", "notiaudio", time()+3600, COOKIEPATH, COOKIE_DOMAIN );
}
if ( $unread === 3 ) {
echo $tre;
setcookie("notifaudio", "notiaudio", time()+3600, COOKIEPATH, COOKIE_DOMAIN );
}
if ( $unread === 4 ) {
echo $quattro;
setcookie("notifaudio", "notiaudio", time()+3600, COOKIEPATH, COOKIE_DOMAIN );
}
if ( $unread === 5 ) {
echo $cinque;
setcookie("notifaudio", "notiaudio", time()+3600, COOKIEPATH, COOKIE_DOMAIN );
}
if ( $unread > 5 ) {
echo $new;
setcookie("notifaudio", "notiaudio", time()+3600, COOKIEPATH, COOKIE_DOMAIN );
}
}
}
add_action( 'wp_footer', 'custom_um_notification_sound', 9999 );
该功能在 Chrome 和 Safari 中完美运行,但在 Firefox 中不起作用。有人能帮我吗?你有解决问题的办法吗?对不起我的英语不好。谢谢你们。
解决方案
默认情况下,Firefox 会阻止所有有声音的媒体自动播放。有一个允许自动播放的浏览器选项,但这并不是要求访问者这样做的好解决方案。
其他浏览器也会根据情况阻止自动播放。例如, Chrome和WebKit有自己的策略。这通常需要在允许自动播放之前进行一些用户交互。
我建议阅读MDN 上的媒体和 Web 音频 API 的自动播放指南,以了解当前自动播放的障碍和限制以及一些可能的解决方法。
推荐阅读
- java - 如何找到次要矩阵
- javascript - 在vaadin 8中将文本复制到剪贴板
- python - 沿轴的零焊盘ndarray
- php - smarty 在 php 7.2 和德语变音符号上替换 ans ISO-8859-1 的问题
- firebase - 事件的 Firebase 自定义属性过滤器
- scala - Spark Hbase 连接器不能在并行模式下工作?
- haskell - 如何从元组转到自定义数据类型?
- mozilla - 如何为 Mozilla Thunderbird 桌面应用程序创建插件?
- eslint - 如何禁用 eslint 错误“预期导入而不是 AMD 定义()。”
- mobile - 同一基本 URL 中的多个可安装 PWA