Roku媒体播放器客户端

roku的Python项目详细描述


拧遥控器。通过python控制您的Roku

https://travis-ci.org/jcarbaugh/python-roku.svg?branch=master

安装

pip install roku

用法

基础知识

首先,导入roku对象并用roku的ip创建它。

>>> from roku import Roku
>>> roku = Roku('192.168.10.163')

roku对象对遥控器上的每个按钮都有一个方法。

>>> roku.home()
>>> roku.right()
>>> roku.select()

要查看可用命令的完整列表,请使用commands属性。

>>> roku.commands
['back', 'backspace', 'down', 'enter', 'forward', 'home', 'info', 'left', 'literal', 'play', 'replay', 'reverse', 'right', 'search', 'select', 'up']

如果你正在你的家庭网络上跟随并且连接到你的roku,你应该看到它在做什么。酷!

应用程序

apps属性将返回设备上的应用程序列表。

>>> roku.apps
[<Application: [2285] Hulu Plus v2.7.6>, <Application: [13] Amazon Instant Video v5.1.3>, <Application: [20445] VEVO v2.0.12092013>]

应用程序具有idnameversion属性。

>>> app = roku.apps[0]
>>> print app.id, app.name, app.version
2285 Hulu Plus 2.7.6

您可以通过roku对象的nameid从roku对象获取单个应用程序。

>>> roku['Hulu Plus']
<Application: [2285] Hulu Plus v2.7.6>
>>> roku[2285]
<Application: [2285] Hulu Plus v2.7.6>

看到这个hulu plus应用程序的引用,我真的很想看Nashville的最新一集。我们开始吧!

>>> hulu = roku['Hulu Plus']
>>> hulu.launch()

同样,如果你在家里继续关注,你应该会看到你的roku已经推出了hulu plus应用。要在频道商店中查看应用程序条目吗?

>>> hulu.store()

你也可以得到应用程序的图标。

>>> with open('hulu.png', 'w') as f:
...     f.write(hulu.icon)

您可以获取当前正在运行的应用程序。

>>> roku.active_app
<Application: [12] Netflix v4.2.75015046>

输入文本

好吧,我已经看过纳什维尔所有可用的剧集,所以我要搜索stargate。打开搜索并等待文本输入:

>>> roku.literal('stargate')

如果我现在想看线人怎么办!?再次打开搜索并等待文本输入:

>>> roku.literal('The Informant!')

这将遍历每个字符,分别发送给roku。

高级材料

发现

可以使用SSDP查找roku设备。roku对象上有一个类方法,该方法将为同一网络上找到的每个设备返回roku对象实例。

>>> Roku.discover()
[<Roku: 192.168.10.163:8060>]

可能需要几秒钟才能找到设备。您可以再次调用discover或更改discover方法上的timeoutretries参数。这需要更长的时间,但会找到更多的设备。

>>> Roku.discover(timeout=10)
[<Roku: 192.168.10.163:8060>, <Roku: 192.168.10.204:8060>]

感谢Dan Krause对他的SSDP code

传感器

较新的Roku遥控器内置了额外的传感器,可以测量加速度、方向等。您可以使用提供的辅助方法模拟这些传感器。

>>> roku.orientation(1, 1, 1)

所有传感器方法的参数都是x、y和z值。可用的方法包括:

  • 加速度-相对于自由落体的每个尺寸,单位为米/秒^2
  • 微特斯拉的磁场强度
  • 方向-从平面/水平和以弧度表示的北方的角位移
  • < Riangs/SEC中使用右手规则旋转轴角旋转速率

触摸

一些roku输入设备支持触摸。touch方法的参数是touch的xy坐标。

>>> roku.touch(10, 40)

可以通过传递可选的op参数来更改触发的事件。

>>> roku.touch(10, 40, op='up')

支持的事件有:

  • 向下
  • 向上
  • 按下(向下和向上)
  • 移动
  • 取消

此包中尚不支持多点触摸。

一般输入

sensor和touch方法都依赖于一般的input方法来向正在运行的应用程序发送数据。如果你拒绝使用covenience方法,因为它们使人懒惰和虚弱,你可以直接调用sensor和touch方法。

>>> params = {'touch.0.x': 10, 'touch.0.y': 20, 'touch.0.op': 'press'}
>>> roku.input(params)

有关输入、触摸、和d传感器在Roku External Control docs中可用。

待办事项

  • 当然是测试。
  • 多点触控支持。
  • 一种烧瓶代理服务器,可以监听请求并将其转发到本地网络上的设备。一次控制多个设备,嗯?
  • 一个模仿roku接口的服务器,这样你就可以自己制作类似roku的东西。
  • 一种任务运行程序,它接受一组命令并以适合大多数设备的延迟运行它们。

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

推荐PyPI第三方库


热门话题
请求响应模式的java JMS   java如何从SeleniumWebDriver中的“Span Type下拉列表”中选择值   java JPA相当于Hibernate的@Generated(GenerationTime.ALWAYS)   java ActiveMQ查询:如何启动   java如何在jsp文件中使用freemarker标记库?   java如何在TabsLayout中用另一个片段替换一个片段的内容?   国际化如何理解Java教程国际化定制资源包加载示例?   XML配置中的java spring log4j无法为日志信息创建文件   oracle11g JDK 6:有没有办法运行一个新的java进程来执行指定类的主方法   java在avro模式中使用“default”   缺陷跟踪我在哪里可以提交关于FOSS Java Sound实施组织的缺陷报告。类路径。冰岛。pulseaudio。Pulseaudiosourcedaline?   编码Java系统。在和系统中。Sun/Oracle和IBM JVM解决方案在读写标准字节数组方面存在差异   java如何将列表项作为查询参数添加到字符串url中?   将自定义库导出到可导入jar文件java