找回密码
 -注册-
查看: 362|回复: 3
打印 上一主题 下一主题

moOde-Player控制服务扩展程序

[复制链接]
跳转到指定楼层
1
发表于 2025-7-4 21:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式 来自 广东广州
ssh登录moOde,将两个文件放入/var/www目录可以通过修css代码更改外观,也可以通过修改代码实现更多功能。

前端文件:service_control.html
  1. <!--
  2. /**
  3. *
  4. * 音频设备控制面板(Audio device control panel)
  5. * ver:1.0.5
  6. *
  7. * This Program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 3, or (at your option)
  10. * any later version.
  11. *
  12. * This Program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  19. *
  20. * by:Androidnews
  21. */
  22. -->
  23. <!DOCTYPE html>
  24. <html lang="zh-cmn-Hans">
  25.         <head>
  26.                 <meta charset="UTF-8">
  27.                 <title>音频设备控制面板</title>
  28.                 <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=no">
  29.                 <link rel="stylesheet" href="css/styles.min.css">
  30.                 <meta name="apple-mobile-web-app-capable" content="yes">
  31.                 <meta name="apple-mobile-web-app-status-bar-style" content="black">
  32.                 <link rel="apple-touch-icon" sizes="180x180" href="/v5-apple-touch-icon.png">
  33.                 <link rel="mask-icon" href="/v5-safari-pinned-tab.svg" color="#5bbad5">
  34.                 <link rel="icon" type="image/png" sizes="32x32" href="/v5-favicon-32x32.png">
  35.                 <link rel="icon" type="image/png" sizes="16x16" href="/v5-favicon-16x16.png">
  36.                 <meta name="theme-color" content="#202020">
  37.                 <meta name="msapplication-TileColor" content="#da532c">
  38.         </head>
  39.         <body>
  40.                 <div id="container">
  41.                         <h1>音频设备控制面板</h1>
  42.                         <form action="service_control.php" method="post">
  43.                                 <fieldset>
  44.                                         <legend>控制选项</legend>
  45.                                         <ul class="control-buttons">
  46.                                                 <li>
  47.                                                         <button type="submit" name="action" value="start_mpd">启动 MPD</button>
  48.                                                 </li>
  49.                                                 <li>
  50.                                                         <button type="submit" name="action" value="stop_mpd">关闭 MPD</button>
  51.                                                 </li>
  52.                                                 <li>
  53.                                                         <button type="submit" name="action" value="start_RoonServer">启动 RoonServer</button>
  54.                                                 </li>
  55.                                                 <li>
  56.                                                         <button type="submit" name="action" value="stop_RoonServer">关闭 RoonServer</button>
  57.                                                 </li>
  58.                                                 <li>
  59.                                                         <button type="submit" name="action" value="start_lms">启动 Lyrionmusicserver</button>
  60.                                                 </li>
  61.                                                 <li>
  62.                                                         <button type="submit" name="action" value="stop_lms">关闭 Lyrionmusicserver</button>
  63.                                                 </li>
  64.                                                 <li>
  65.                                                         <button type="submit" name="action" value="start_aplayer">启动 aplayer</button>
  66.                                                 </li>
  67.                                                 <li>
  68.                                                         <button type="submit" name="action" value="stop_aplayer">关闭 aplayer</button>
  69.                                                 </li>
  70.                                                 <li>
  71.                                                         <button type="submit" name="action" value="start_naa">启动 NAA</button>
  72.                                                 </li>
  73.                                                 <li>
  74.                                                         <button type="submit" name="action" value="stop_naa">关闭 NAA</button>
  75.                                                 </li>
  76.                                                 <li>
  77.                                                         <button type="submit" name="action" value="start_aprenderer">启动 aprenderer</button>
  78.                                                 </li>
  79.                                                 <li>
  80.                                                         <button type="submit" name="action" value="stop_aprenderer">关闭 aprenderer</button>
  81.                                                 </li>
  82.                                                 <li>
  83.                                                         <button type="submit" name="action" value="start_diretta_memoryplay_host">启动 DirettaMemoryPlay</button>
  84.                                                 </li>
  85.                                                 <li>
  86.                                                         <button type="submit" name="action" value="stop_diretta_memoryplay_host">关闭 DirettaMemoryPlay</button>
  87.                                                 </li>
  88.                                                 <li>
  89.                                                         <button type="submit" name="action" value="start_diretta_ssync_host">启动 DirettaSalsaHost</button>
  90.                                                 </li>
  91.                                                 <li>
  92.                                                         <button type="submit" name="action" value="stop_diretta_ssync_host">关闭 DirettaSalsaHost</button>
  93.                                                 </li>
  94.                                                 <li>
  95.                                                         <button type="submit" name="action" value="start_direttatarget">启动 DirettaTarget</button>
  96.                                                 </li>
  97.                                                 <li>
  98.                                                         <button type="submit" name="action" value="stop_direttatarget">关闭 DirettaTarget(重新启动)</button>
  99.                                                 </li>
  100.                                                 <li>
  101.                                                         <button type="submit" name="action" value="list_audio_devices">查看音频设备</button>
  102.                                                 </li>
  103.                                                 <li>
  104.                                                         <button type="submit" name="action" value="list_sysinfo">查看系统版本</button>
  105.                                                 </li>                                       
  106.                                                 <li>
  107.                                                         <button type="submit" name="action" value="list_serviceinfo">查看系统服务</button>
  108.                                                 </li>                                       
  109.                                                 <li>
  110.                                                         <button type="submit" name="action" value="shutdown_moOde">关机</button>
  111.                                                 </li>
  112.                                                 <li>
  113.                                                         <button type="submit" name="action" value="reboot_moOde">重启</button>
  114.                                                 </li>
  115.                                                 <!-- 其他服务操作... -->
  116.                                         </ul>
  117.                                 </fieldset>
  118.                         </form>
  119.                         <div>
  120.                                 <br>
  121.                                 <b>音乐服务系统</b>
  122.                                 <br>
  123.                                 moOde Player:ip
  124.                                 <br>
  125.                                 Lyrionmusicserver:ip:9000
  126.                                 <br>
  127.                                 DirettaMemoryPlay启动后,在PC上启动MemoryPlayControllerGUI播放音乐,需要配合第二台机器上的DirettaTarget接解码播放音乐
  128.                                 <br>
  129.                                 Aplayer ip:7778
  130.                                 <br>
  131.                                 aprenderer ip:7779
  132.                                 <br>
  133.                                 <br>
  134.                                 <b>注意:</b>
  135.                                 <br>
  136.                                 1、moOde音乐播放系统默认自动开启;<br>
  137.                                 2、如果想要本机使用lyrionmusicserver播放音乐,需要停止moOde播放,并同时启动Squeezelite和lyrionmusicserver;<br>
  138.                                 3、Squeezelite和NAA、RoonBridge以及aprenderer不能同时启动,每次只能启动其中一个音乐桥服务。
  139.                         </div>
  140.                 </div>
  141.         </body>
  142. </html>
复制代码
后端文件:service_control.php
  1. <?php
  2. /**
  3. *
  4. * 音频设备控制面板(Audio device control panel)
  5. * ver:1.0.5
  6. *
  7. * This Program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 3, or (at your option)
  10. * any later version.
  11. *
  12. * This Program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  19. *
  20. * by:Androidnews
  21. */
  22. $allowedActions = array('start_mpd','stop_mpd','start_RoonServer','stop_RoonServer','start_lms','stop_lms','start_aplayer','stop_aplayer','start_diretta_ssync_host','stop_diretta_ssync_host','start_squeezelite','stop_squeezelite','start_naa','stop_naa','start_roonbridge','stop_roonbridge','start_aprenderer','stop_aprenderer','start_diretta_memoryplay_host','stop_diretta_memoryplay_host','start_direttatarget','stop_direttatarget','list_audio_devices','list_sysinfo','list_serviceinfo','shutdown_moOde','reboot_moOde');
  23. if (isset($_POST['action']) && in_array($_POST['action'], $allowedActions)) {
  24.     $action = $_POST['action'];
  25.     switch ($action) {
  26.         case 'start_mpd':
  27.             shell_exec('sudo systemctl start mpd.service 2>&1');
  28.             $output = 'mpd服务已经启动...';
  29.             break;
  30.         case 'stop_mpd':
  31.             shell_exec('sudo systemctl stop mpd.service 2>&1');
  32.             $output = 'mpd服务已经停止...';
  33.             break;
  34.         case 'start_RoonServer':
  35.             shell_exec('sudo systemctl start roonserver.service 2>&1');
  36.             $output = 'RoonServer服务已经启动...';
  37.             break;
  38.         case 'stop_RoonServer':
  39.             shell_exec('sudo pkill -f RoonServer 2>&1');
  40.             $output = 'RoonServer服务已经停止...';
  41.             break;
  42.         case 'start_lms':
  43.             shell_exec('sudo systemctl start lyrionmusicserver.service 2>&1');
  44.             $output = 'LMS服务已经启动...';
  45.             break;
  46.         case 'stop_lms':
  47.             shell_exec('sudo systemctl stop lyrionmusicserver.service 2>&1');
  48.             $output = 'LMS服务已经停止...';
  49.             break;
  50.         case 'start_aplayer':
  51.             shell_exec('sudo systemctl start aplayer.service 2>&1');
  52.             $output = 'aplayer已经启动...';
  53.             break;
  54.         case 'stop_aplayer':
  55.             shell_exec('sudo systemctl stop aplayer.service 2>&1');
  56.             $output = 'aplayer已经停止...';
  57.             break;
  58.         case 'start_naa':
  59.             shell_exec('sudo systemctl stop aplayer.service;sudo systemctl stop aprenderer.service;sudo systemctl stop squeezelite.service;sudo systemctl start networkaudiod.service;sudo pkill -f RoonBridge;sudo pkill -f RoonRoonServer; 2>&1');
  60.             $output = 'NAA服务已经启动...';
  61.             break;
  62.         case 'stop_naa':
  63.             shell_exec('sudo systemctl stop networkaudiod.service 2>&1');
  64.             $output = 'NAA服务已经停止...';
  65.             break;
  66.         case 'start_aprenderer':
  67.             shell_exec('sudo systemctl stop squeezelite.service;sudo systemctl stop networkaudiod.service;sudo systemctl start aprenderer.service;sudo pkill -f RoonBridge;sudo pkill -f RoonRoonServer; 2>&1');
  68.             $output = 'aprenderer已经启动...';
  69.             break;
  70.         case 'stop_aprenderer':
  71.             shell_exec('sudo systemctl stop aprenderer.service 2>&1');
  72.             $output = 'aprenderer已经停止...';
  73.             break;
  74.          case 'start_diretta_memoryplay_host':
  75.             shell_exec('sudo systemctl start diretta_memoryplay_host.service 2>&1');
  76.             $output = 'DirettaMemoryPlay已经启动...';
  77.             break;
  78.         case 'stop_diretta_memoryplay_host':
  79.             shell_exec('sudo systemctl stop diretta_memoryplay_host.service 2>&1');
  80.             $output = 'DirettaMemoryPlay已经停止...';
  81.             break;
  82.          case 'start_diretta_ssync_host':
  83.             shell_exec('sudo systemctl start diretta_ssync_host.service 2>&1');
  84.             $output = 'DirettaSalsaHost已经启动...';
  85.             break;
  86.         case 'stop_diretta_ssync_host':
  87.             shell_exec('sudo systemctl stop diretta_ssync_host.service 2>&1');
  88.             $output = 'DirettaSalsaHost已经停止...';
  89.             break;
  90.        case 'start_direttatarget':
  91.             shell_exec('sudo systemctl stop diretta_ssync_host.service;sudo systemctl start diretta.service 2>&1');
  92.             $output = 'DirettaTarget已经启动...';
  93.             break;
  94.         case 'stop_direttatarget':
  95.             shell_exec('sudo reboot 2>&1');
  96.             $output = 'DirettaTarget停止...';
  97.             break;
  98.         case 'list_audio_devices':
  99.             $output = shell_exec('sudo aplay -l 2>&1');
  100.             break;
  101.         case 'list_sysinfo':
  102.             $output = shell_exec('sudo uptime&cat /proc/version & cat /proc/cpuinfo & cat /proc/meminfo 2>&1');
  103.             break;
  104.         case 'list_serviceinfo':
  105.             $output = shell_exec('sudo systemctl list-units --type=service 2>&1');
  106.             break;
  107.         case 'shutdown_moOde':
  108.             shell_exec('sudo shutdown -h now');
  109.             $output = '系统正在关机...';
  110.             break;
  111.         case 'reboot_moOde':
  112.             shell_exec('sudo reboot');
  113.             $output = '系统正在重启...';
  114.             break;
  115.         default:
  116.             $output = '无效的操作请求。';
  117.     }
  118.     if (isset($output)) {
  119.         echo "<pre>" . htmlspecialchars($output) . "</pre>";
  120.     }
  121. } else {
  122.     echo "<p>无效的操作请求。</p>";
  123. }
  124. ?>
复制代码
界面:


2
发表于 2025-7-4 21:19 | 只看该作者 来自 广东清远
感谢大神,真是及时雨啊
回复

使用道具 举报

3
发表于 2025-7-4 21:54 | 只看该作者 来自 广东佛山
一次性全家桶了  moode的魅力 不减当年  
回复

使用道具 举报

4
发表于 2025-7-6 19:08 | 只看该作者 来自 中国

感谢大神,真是及时雨啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | -注册-

本版积分规则

Archiver|手机版|粤icp备09046054号|耳机网-耳机大家坛

粤公网安备 44030602000598号 耳机大家坛、www.erji.net、网站LOGO图形均为注册商标

GMT+8, 2025-7-7 14:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表