如何强制 Ubuntu 使用 Web 应用作为远程控制在显示器上显示电影

如何强制 Ubuntu 使用 Web 应用作为远程控制在显示器上显示电影

我想制作自己的数字标牌应用程序。

  • 我在 RPi4B 上安装了 Ubuntu 服务器。
  • 在该机器上,我在本地主机上使用前端(React.js)和后端(Express.js)提供 Web 应用程序。
  • 该网络应用程序可以对机器进行远程控制。

我想让这个应用程序能够强制 Raspberry Pi 在其显示屏上显示一些电影。如果可能的话 - 我可以从连接到与我的 RPI 相同的网络的每个设备远程控制我的机器。

我尝试过了:

  • 从其他 Windows 计算机连接到 ubuntu 机器以执行 mplayer - 效果不佳 - mplayer 尝试在 Windows 机器上显示来自 Ubuntu 本地硬盘的电影
  • 使用 ubuntu-frame - 但它没有效果,我不知道为什么 - 我使用了官方网站的命令:
snap install ubuntu-frame
snap install wpe-webkit-mir-kiosk
snap set wpe-webkit-mir-kiosk daemon=true
snap set ubuntu-frame daemon=true
snap set wpe-webkit-mir-kiosk url=https://YOUR_WEBSITE.com

但出现错误:

ERROR: /build/mir-Cmm0ws/mir-2.7.0/src/server/graphics/default_configuration.cpp(224): Throw in function virtual const std::vector<std::shared_ptr<mir::graphics::DisplayPlatform> >& mir::DefaultServerConfiguration::the_display_platforms()
Dynamic exception type: boost::wrapexcept<std::runtime_error>
std::exception::what: Exception while creating graphics platform
ERROR: /build/mir-Cmm0ws/mir-2.7.0/src/server/graphics/platform_probe.cpp(137): Throw in function std::vector<std::shared_ptr<mir::SharedLibrary> > {anonymous}::modules_for_device({anonymous}::ModuleType, const std::vector<std::shared_ptr<mir::SharedLibrary> >&, const mir::options::ProgramOption&, const std::shared_ptr<mir::ConsoleServices>&)
Dynamic exception type: boost::wrapexcept<std::runtime_error>
std::exception::what: Failed to find any platforms for current system

您对如何实现这一点有什么建议吗?

答案1

真快!感谢拉吉我可以搜索正确的内容并找到解决方案!我的问题只是我尝试在 Windows 机器的 ssh 终端中“手动”执行此操作。但是当我创建“play.sh”脚本时:

#!/bin/bash
export DISPLAY=:0
xset dpms force on
mplayer -fs my_video.mp4

并将其保存在 Ubuntu 的存储中,然后就完成了source play.sh- 然后视频出现在 Ubuntu 的桌面上!现在我需要完善它,但终于找到了解决方案!

编辑。

过了一段时间,我对这个案例有了更多的了解:如果机器已经正确设置了环境,GUI 正在运行,并且 mplayer 也正确配置了,那么脚本就不必导出显示并设置 dpms。

如果一切设置正确,mplayer 可由您的 nodejs 服务器或 python 后端或任何您想要的服务器执行。只需执行“mplayer [list_of_movies]”即可运行。

所以我的问题不是缺乏如何运行 mplayer 的知识,而是缺乏有关正确环境配置的知识。

相关内容