单击网页上的链接时在服务器上执行音频播放器

Posted

技术标签:

【中文标题】单击网页上的链接时在服务器上执行音频播放器【英文标题】:Execute audio player on server when link is clicked on web page 【发布时间】:2019-02-02 15:51:58 【问题描述】:

我似乎不知道如何在我的网络服务器上打开一个 mp3 文件。 如果我只是引用歌曲(下面的代码),它会在我正在访问它的客户端上打开它。 即使我从另一台设备访问 html 页面,我也希望歌曲能够在 Web 服务器上播放。

<!DOCTYPE html>
<html>
<body>
<a href="Song.mp3">Song</a>

</body>
</html>

我该如何解决这个问题? 我正在使用 Raspberry Pie、Apache、VLC(播放 mp3) 感谢您的支持:D

【问题讨论】:

***.com/a/18826567/7351855 这与我的问题无关。单击链接时,我的 mp3 文件可以正常打开。我只是不知道如何始终在服务器(Raspberry)上执行 mp3 文件,而不是在单击 html 链接时在客户端设备上打开它。 所以你不想只通过终端使用浏览器,对吧? 是的,我希望在单击链接时在服务器上执行此命令:vlc Song.mp3 哦,我明白了,你有apache服务器,所以使用php system()函数php.net/manual/en/function.system.php 【参考方案1】:

因为我不能直接执行命令,所以我必须创建一个脚本来响应创建的文件。

<?php 
    shell_exec('touch Song1.txt');
    ?>

Song.sh:

while  [ -f run.txt ]
do
if [ -f Song1.txt ];
then  
        cvlc --play-and-exit songs/song.mp3
        rm -f Song1.txt
fi
done

【讨论】:

这也是解决方案,但CPU消耗很高,对吧?在fi 下添加一些睡眠,例如sleep 0.1 或使用inotify 我用inotify 编辑了我的答案,它可以使用更少的CPU。【参考方案2】:

试试这个:

index.html:

&lt;a href="/script.php"&gt;Song&lt;/a&gt;

脚本.php:

<?php exec('export DISPLAY=:0; cvlc songs/Song1.mp3'); ?>


编辑:

inotifywait 的解决方案可以对 CPU 消耗友好:

PHP:

<?php 
    shell_exec('cat Song1.txt');
 ?>

重击:

touch Song1.txt  
while  [ -f run.txt ]
do
    inotifywait --event=close_nowrite Song1.txt
    cvlc --play-and-exit songs/song.mp3
done

【讨论】:

不,仍然无法正常工作。给我一个空白页,没有任何执行。 Button 显然没有与脚本建立连接,因为 php 脚本本身可以工作。 @Oromis 空白页没问题,因为 php 不打印任何内容。 exec() 中的路径是否正确? 是的,因为 cli 命令:php script.php 正确启动了带有 vlc 的 mp3 @Oromis 哦,它启动图形界面了吗? @Oromis 这就是问题放在cvlc 而不是vlc

以上是关于单击网页上的链接时在服务器上执行音频播放器的主要内容,如果未能解决你的问题,请参考以下文章

如何在点击时在 jPlayer 中播放链接到的音频文件?

单击链接后 jQuery 音频停止

更改单击脚本上的文本

从数据库播放多个音频文件

单击时播放音频文件的按钮[重复]

.net c# 在网页上客户端如何播放服务器端的wav音频文件 急急急!!!!!!!