Javascript 使用;ontouchstart“;或;onclick";取决于自定义音频拨号的设备

Javascript 使用;ontouchstart“;或;onclick";取决于自定义音频拨号的设备,javascript,html,css,Javascript,Html,Css,我已经创建了一个网站,用户可以使用各种音频拨号来创建自己独特的音频声音(即雨、噼啪声等的混合声音)。我的网站链接如下: 我无法在移动/触摸屏设备上使用音频。我认为这是因为我在html输入标记中使用了onclick=“play()”。当我用ontouchstart替换onclick时,音频拨号可以在触摸屏设备上工作,但不能在桌面上工作 有人知道有没有办法让onclick和OnTouch同时开始工作 谢谢 HMTL 在JavaScript中,当使用触摸屏设备时,TouchStart将出现在窗口对象

我已经创建了一个网站,用户可以使用各种音频拨号来创建自己独特的音频声音(即雨、噼啪声等的混合声音)。我的网站链接如下:

我无法在移动/触摸屏设备上使用音频。我认为这是因为我在html输入标记中使用了onclick=“play()”。当我用ontouchstart替换onclick时,音频拨号可以在触摸屏设备上工作,但不能在桌面上工作

有人知道有没有办法让onclick和OnTouch同时开始工作

谢谢

HMTL

在JavaScript中,当使用触摸屏设备时,TouchStart将出现在窗口对象中,使用它您可以监听正确的事件

  <li>             
                    <div class="audio_buttons">
                        <img src="images/fire.png" class="audio-icons " id="fire-icon">
                        <input type="range" oninput="setVolume(this)" id='volume1' min=0 max=1 step=0.01 value='0' onclick="play()">
                        <audio loop id="cs_audio" controls style="display:none">

                        <source src="audio/fire_loop.mp3" type="audio/mp3">
                        </audio>
                    </div>
            </li>
var audio_file_1;
var volume1;

        function init()  {
        audio_file_1 = document.getElementById("cs_audio");
         volume1 = document.getElementById("volume1");
         audio_file_1.play();
        }

        function setVolume() {
        var audio_file_1  = document.getElementById("cs_audio");
        audio_file_1.volume = document.getElementById("volume1").value;

        }


        function play() {
        var audio = document.getElementById("cs_audio");
        audio.play();
        }
const event = "ontouchstart" in window ? "touchstart" : "onclick";
document.getElementById("volume1").addEventListener(event, () => play());