在JavaScript或HTML中,以/开头的路径是指向URL模式、主机名和端口的绝对路径,例如http://localhost、http://localhost:8080 因此,在localhost上运行的/Absolute/path/to/music.mp3的URL现在将变为http://localhost/Absolute/path/to/music.mp3,虽然这对您来说可能不是问题,但在访问文件系统时应始终使用绝对文件系统路径。例如const player = new Audio('file:///Absolute/path/to/music.mp3');,这将指向本地文件。 但是,如果您需要在使用的浏览器上禁用CORS,则可能会遇到CORS问题,在这种情况下,您需要在Electron (chromium) disable web security上找到答案 如果这不起作用,我们需要看到未捕获的异常, player.play().catch(e => console.error("audio play failed with: "+e))(如果显示了控制台输出)或player.play().catch(e => alert("audio play failed with: "+e))
3条答案
按热度按时间trnvg8h31#
在JavaScript或HTML中,以/开头的路径是指向URL模式、主机名和端口的绝对路径,例如
http://localhost
、http://localhost:8080
因此,在localhost上运行的
/Absolute/path/to/music.mp3
的URL现在将变为http://localhost/Absolute/path/to/music.mp3
,虽然这对您来说可能不是问题,但在访问文件系统时应始终使用绝对文件系统路径。例如const player = new Audio('file:///Absolute/path/to/music.mp3');
,这将指向本地文件。但是,如果您需要在使用的浏览器上禁用CORS,则可能会遇到CORS问题,在这种情况下,您需要在Electron (chromium) disable web security上找到答案
如果这不起作用,我们需要看到未捕获的异常,
player.play().catch(e => console.error("audio play failed with: "+e))
(如果显示了控制台输出)或player.play().catch(e => alert("audio play failed with: "+e))
5jvtdoz22#
您需要更改自动播放策略。在电子的主进程中添加下一行并尝试。
vxbzzdmp3#
对于渲染过程,您可以使用带有base64数据的html5音频,而不是声音文件url: