是否有可以使用 UDP 或 TCP 命令进行远程控制的简单音频播放器?
所需的控制非常简单:
- 停止
- 玩
- 暂停
- 提高音量
- 音量减小
- 下一曲目
- 上一曲目
答案1
按照@Scott Chamberlain 的回答,我尝试了 VLC Media Player。我发现 RC 接口是一种通过 TCP 进行远程控制的简单方法。
(我写了一个博客文章并做了一个简短的视频演示YouTube)
具体如下:
- 打开命令行(cmd)并 cd 到 VLC 安装位置。
- 键入以下命令: vlc --intf rc --rc-host 本地主机:50000 (端口不必是 50000)
- 打开插座测试TCP 客户端或任何其他 TCP 客户端。
- 连接到 127.0.0.1:50000
- 发送“帮助”以获取可用命令的列表。
命令如下:
+----[ Remote control commands ]
|
| add XYZ . . . . . . . . . . . . add XYZ to playlist
| enqueue XYZ . . . . . . . . . queue XYZ to playlist
| playlist . . . . . show items currently in playlist
| play . . . . . . . . . . . . . . . . . . play stream
| stop . . . . . . . . . . . . . . . . . . stop stream
| next . . . . . . . . . . . . . . next playlist item
| prev . . . . . . . . . . . . previous playlist item
| goto . . . . . . . . . . . . . . goto item at index
| repeat [on|off] . . . . toggle playlist item repeat
| loop [on|off] . . . . . . . . . toggle playlist loop
| random [on|off] . . . . . . . toggle random jumping
| clear . . . . . . . . . . . . . . clear the playlist
| status . . . . . . . . . . . current playlist status
| title [X] . . . . . . set/get title in current item
| title_n . . . . . . . . next title in current item
| title_p . . . . . . previous title in current item
| chapter [X] . . . . set/get chapter in current item
| chapter_n . . . . . . next chapter in current item
| chapter_p . . . . previous chapter in current item
|
| seek X . . . seek in seconds, for instance `seek 12'
| pause . . . . . . . . . . . . . . . . toggle pause
| fastforward . . . . . . . . . set to maximum rate
| rewind . . . . . . . . . . . . set to minimum rate
| faster . . . . . . . . . . faster playing of stream
| slower . . . . . . . . . . slower playing of stream
| normal . . . . . . . . . . normal playing of stream
| frame. . . . . . . . . . play frame by frame
| f [on|off] . . . . . . . . . . . . toggle fullscreen
| info . . . . . information about the current stream
| stats . . . . . . . . show statistical information
| get_time . . seconds elapsed since stream's beginning
| is_playing . . . . 1 if a stream plays, 0 otherwise
| get_title . . . . . the title of the current stream
| get_length . . . . the length of the current stream
|
| volume [X] . . . . . . . . . . set/get audio volume
| volup [X] . . . . . . . raise audio volume X steps
| voldown [X] . . . . . . lower audio volume X steps
| adev [device] . . . . . . . . set/get audio device
| achan [X]. . . . . . . . . . set/get audio channels
| atrack [X] . . . . . . . . . . . set/get audio track
| vtrack [X] . . . . . . . . . . . set/get video track
| vratio [X] . . . . . . . set/get video aspect ratio
| vcrop [X] . . . . . . . . . . . set/get video crop
| vzoom [X] . . . . . . . . . . . set/get video zoom
| snapshot . . . . . . . . . . . . take video snapshot
| strack [X] . . . . . . . . . set/get subtitle track
| key [hotkey name] . . . . . . simulate hotkey press
| menu . . [on|off|up|down|left|right|select] use menu
|
| help . . . . . . . . . . . . . . . this help message
| logout . . . . . . . exit (if in socket connection)
| quit . . . . . . . . . . . . . . . . . . . quit vlc
|
+----[ end of help ]
答案2
是的,VLC 可以通过 telnet 控制。这只是发送非常基本的 ASCII 编码数据的 TCP 数据包。编写自己的程序来控制它并不难。
我从未使用过它,所以我不知道通过 telnet 登录后要使用的实际命令。