首页 > 解决方案 > 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 中不起作用。有人能帮我吗?你有解决问题的办法吗?对不起我的英语不好。谢谢你们。

标签: phpwordpress

解决方案


默认情况下,Firefox 会阻止所有有声音的媒体自动播放。有一个允许自动播放的浏览器选项,但这并不是要求访问者这样做的好解决方案。

其他浏览器也会根据情况阻止自动播放。例如, ChromeWebKit有自己的策略。这通常需要在允许自动播放之前进行一些用户交互。

我建议阅读MDN 上的媒体和 Web 音频 API 的自动播放指南,以了解当前自动播放的障碍和限制以及一些可能的解决方法。


推荐阅读