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

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:为什么基类方法可以调用不存在的方法?   javasocket编程问题(发送和接收数据)   java为什么构造函数/字段中的“new”关键字对于单元测试是不灵活的?   java Android ListActivity到Activity   java我可以调用binarySearch方法而不实现comparator/comparable吗?   java Apache Shiro角色和权限不起作用   java获取值并将其显示在EditText上   java为什么在以前运行的代码中会出现“Uninitialized constant DriverManager”错误?   二进制Java按位或字节与整数之间   java itext字体不支持HarsetException   ApacheTomcat上的java双MySQL数据源配置   java将属性文件默认值更改为我的属性文件所在的位置   反编译程序如何反编译java类文件?   java中的For循环不起作用   java如何匹配多个捕获组,但结果不符合预期   HttpURLConnection抛出响应代码400的json Java读帖子   java为什么不说我赢了?