用php和amixer / pulseaudio设置音量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用php和amixer / pulseaudio设置音量相关的知识,希望对你有一定的参考价值。

我的问题是,以下脚本在终端中执行正常,但在我的Apache2-Webserver上它没有做任何事情。

<?php
exec("/usr/bin/pactl set-sink-volume 0 60%");
?>

当它从终端执行时,我可以听到音乐越来越响亮

sudo php /var/www/html/test2.php

使用exec的其他命令在Web服务器上运行得非常好。工作范例:

<?php    
exec("/sbin/shutdown -r now");
?>

建立:

  • Apache 2.4
  • PHP 7
  • 覆盆子P3B +
  • Raspbian
  • 扬声器通过耳机插孔连接

在此先感谢您的帮助!

答案

首先检查组。一种方法是使用ls -lah /usr/bin/pactl。它应该显示其他信息,即拥有权限的用户和组。它还显示用户,组和其他人是否具有执行权限。

要将现有用户帐户添加到系统上的组,请使用usermod命令,将examplegroup替换为要添加用户的组的名称,并将andexampleusername替换为要添加的用户的名称。

usermod -a -G examplegroup exampleusername

例如,要将用户www-data添加到组音乐,请使用以下命令:

usermod -a -G music www-data

Source

编辑

另一种方法是允许所有用户通过向所有用户添加执行位来执行/usr/bin/pactl

另一答案

我的问题解决了。我正在将文件写入文件夹,脚本检查此文件夹中的文件并执行,而不是代码来控制音频(我现在用amixer而不是pactl控制它)。

无论如何,谢谢你的建议!

以上是关于用php和amixer / pulseaudio设置音量的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 的pulseaudio器件用list.c

Index» Newbie Corner» [SOLVED] Alsamixer and amixer both output “No such file or directory“

ALSA音频工具amixer,aplay,arecord

嵌入式linux/android alsa_aplay alsa_amixer命令行用法

FFMPEG:向以前的 amix 输出添加更多轨道

amixer研究