通过网络或安卓手机远程控制媒体播放器

carrie的Python项目详细描述


简介

这是一个通过网络命令控制媒体播放的远程控制工具。媒体播放器必须是Linux机器,控制器可以是Web浏览器或Android设备。

支持的播放器有:

  • Firefox或Chromium浏览器上的YouTube。
  • 关于Firefox或Chromium的BBC iPlayer。
  • MPlayer

此项目不是媒体中心。没有启动媒体播放或更改正在播放的文件的功能。carrie仅用于控制已在播放的视频。可用的功能有:

  • 播放/暂停
  • 全屏切换
  • 音量增大和减小
  • 静音

如果客户端播放器是mplayer,则可以使用以下附加功能:

  • 向前/向后跳过
  • 切换全屏、OSD、字幕可见性
  • 更改音频和字幕语言。

屏幕截图

请参阅doc目录。

它是如何工作的?

carrie是在执行媒体播放的计算机上运行的进程。它打开一个端口(默认为5505),并提供一个简单的web界面。或者,android应用程序可以从android手机或平板电脑向同一端口发送命令。

当收到命令时,服务器将尝试控制显示Flash视频的Web浏览器。如果找不到,服务器将尝试通过fifo对象控制mplayer—这使用mplayer的“从模式”功能。mplayer必须事先配置,才能监听fifo。

限制

由于没有与flash视频通信的api,服务器进程发送假鼠标事件进行控制。这必须为浏览器和视频站点的每个组合配置。

许可证

服务器和应用程序是根据gplv3授权的。

为什么用这个而不用另一个遥控器?

Android设备还有其他遥控器,功能更丰富。carrie适用于那些已经有了启动媒体播放的方法,并且只想添加一些远程功能的用户。

我推荐的其他遥控器是:

  • sshmote:android的媒体中心。不需要任何特殊的服务器软件,除了运行ssh服务器的unix兼容操作系统。
  • teamviewer:从web浏览器或手机上控制windows或linux机器。

要求

要运行服务器:

  • Python2.7+(编程语言)
  • flask(轻量级python web服务器框架)
  • xdool(模拟鼠标和键盘事件的命令行工具)
  • xwininfo(用于读取窗口信息的命令行工具)

要控制服务器:

  • 网络浏览器

要使用移动电话小程序:

  • 运行Android Froyo(2.1)或更高版本的Android设备

服务器安装

首先安装服务器软件:

> sudo pip install carrie

或来源:

> python setup.py build
> sudo python setup.py install

或者没有根访问:

(download and uncompress tarball from http://pypi.python.org/pypi/carrie)
> python setup.py build
> virtualenv $HOME/.carrie-env
> . $HOME/.carrie-env/bin/activate
> python setup.py install

要将mplayer配置为通过fifo接受命令,请编辑$HOME/.mplayer/config,并添加此行:

input=file=/tmp/mplayer.fifo

mplayer的任何新实例都将连接到fifo并监听命令。这不会影响MPlayer的正常使用。fifo将在启动时由carrie创建,或者主要使用:

> mkfifo /tmp/mplayer.fifo

启动服务器

运行:

> carrie

这将启动服务器并监听端口5505,使用fifo on/tmp/mplayer.fifo与mplayer通信。如果不存在FIFO,则将创建FIFO。

运行:

> carrie -h

查看可用选项。

要在与终端分离的后台运行,请使用:

> nohup carrie 2>&1 > /dev/null &

通过浏览器控制

打开网页浏览服务和访问:

http://<server>:5505

为了控制flash视频,应该从显示视频的屏幕的不同窗口或不同的计算机上进行。无法从其他选项卡控制一个选项卡上的视频。

Android应用程序安装

要么从github下载完整的项目并编译android应用程序,要么在android市场上搜索carrie。

更改和新闻

0.3(2012-01-06)

  • Added ‘About’ server page, release application to Android marketplace.

0.2(2012-01-05)

  • Initial pypi release

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android操作共享首选项更新值   java是否可以在单个参数化测试之前执行一次方法?   Java创建临时文件   java字符串已定义但未解析?   java JOptionPane。showConfirmDialog返回int 01而不是字符串YN   java Unitronics OPC Server>JIException访问被拒绝   gzip使用Java组合压缩的gzip文本文件   java在灵活的环境中部署bigtable helloworld不起作用   aspectJ中的java字段读字段写访问   java Hibernate让它映射   找不到媒体类型为application/json、类型为class java的MessageBodyWriter。util。ArrayList   java在SpringMVC中将图像上传到服务器并在mysql数据库中存储引用   如何用Java制作自己的解释器?   java在移动应用程序上使用appium滚动并查找页面中的元素   java无法在重新启动springjdbc、CommonDBCP、tomcat时连接到数据库   java捕获非法argumentException的最佳方法是什么   设计模式避免Java代码重复的良好实践   Java ResourceBundle是如何实现的。getBundle加载属性文件?   java远程访问OpenMQ