仅使用PHP播放音频

时间:2019-09-30 05:44:41

标签: php

我试图只能用PHP播放音频,我什至尝试在Google上找到有关如何做的东西,但没有一个起作用。

我尝试过搜索不同版本的代码,甚至尝试使用Javascript播放声音,但无法正常工作。

echo "<script> new Audio('beep.mp3').play(); </script>";

以及尝试在下面的行中使用Javascript

function play_sound() {
        var audioElement = document.createElement('myAudio');
        audioElement.setAttribute('src', '/beep.mp3');
        audioElement.setAttribute('autoplay', 'autoplay');
        audioElement.load();
        audioElement.play();
    }

我只想简单地使代码起作用,并在单击按钮时播放声音。以及在网站上播放。 (按钮为HTML)。按下按钮时,我确实在客户端播放,而在服务器端却没有播放。

1 个答案:

答案 0 :(得分:0)

基础

您所描述的“在网站上播放”没有没有这样的内容。网站虽然是从服务器发送的,但是却由浏览器客户端加载并提供给访问者查看。总是由客户来播放声音。永远不是服务器(除非每个人都在同一个房间里,并且服务器就像自动点唱机一样,可以和扬声器一起播放)。

如果您想产生一种错觉,即如果任何访问者进行了某些操作(例如,单击按钮),则所有浏览器都在一起播放声音,那么您必须:

  1. 所有浏览器都为自己的个人用户监听特定的用户操作。他们还应该不断播放服务器声音,以播放声音。
  2. 任何浏览器收到该用户操作后,都应向该浏览器发送一些请求。
  3. 服务器程序需要接收该信号,然后以某种方式将其广播给所有正在打开该网站的浏览器。
  4. 一旦所有浏览器都从服务器得知需要播放声音,便会播放声音。

步骤(1),(2)和(4)涉及Javascript。因此,您不能使用“仅php”来做到这一点。

建议

要使(2)上的请求生效,您可以选中jQuery.ajax()

要使(3)上的广播正常播放,您可以选中this PHP long polling example。有人会说WebSocket是更好的广播API。但是长时间轮询更容易在常规的PHP托管(即带有cPanel的LAMP堆栈)上实现和部署。

要播放声音,请坚持使用音频元素脚本。您也可以尝试其他javascript库。但我相信这就是阻止您前进的原因。