*无法打开vchiq实例

Jul*_*kli 3 php audio shell raspberry-pi

我尝试通过音频插孔将声音从php脚本播放到我的raspberry pi 3。我在php脚本中使用以下代码:

<?php
$fetch = 'wget "http://192.168.1.127/sound.mp3" -O sound.mp3 --no-check-certificate';
$play = 'omxplayer -o local sound.mp3';
echo shell_exec($fetch);
echo shell_exec("sudo chown upload sound.mp3");
echo shell_exec($play);
?>
Run Code Online (Sandbox Code Playgroud)

我从本地IP地址获取文件并将其保存到pi。然后,我通过omxplayer命令播放声音。在真实的外壳上(通过Putty中的SSH),Pi会毫无问题地输出声音。当我尝试脚本时,使用omxplayer时收到以下错误消息command

* failed to open vchiq instance
Run Code Online (Sandbox Code Playgroud)

然后,我在论坛中搜索了此错误。它们的意思是文件丢失了权限。为此,我将整个目录设置为权限级别777,并将文件所有者设置为,如您在脚本中所看到的upload

不幸的是,这没有用。有人有其他解决方案可以从pi中获取输出吗?

感谢您的每一个回应。

Ale*_*lex 15

Omxplayer 是一个视频和音频播放器。您的用户需要在video组中,即使您只想播放音频。

不要在777上使用该模式,/dev/vchiq因为它不安全!更好的解决方案是将您的用户添加到名为video. 例如:要将testuserLinux 系统中的用户添加到video组,请使用以下命令:

usermod -aG video testuser
Run Code Online (Sandbox Code Playgroud)


Jul*_*kli 9

再次搜索后,终于找到了解决该问题的方法。问题出在中的目录/dev。我在命令行中按了以下命令,效果很好。

sudo chmod 777 /dev/vchiq
Run Code Online (Sandbox Code Playgroud)

  • 与其在整个系统范围内进行更改,不如针对特定用户进行更改。sudo usermod -a -G视频用户名。这个答案可以在这里找到,例如:https://raspberrypi.stackexchange.com/questions/19436/how-can-i-permanently-fix-dev-vchiq-permission-errors (5认同)