jalder/upnp

PHP应用中的UPnP工具

v0.0.2 2014-12-12 03:47 UTC

This package is not auto-updated.

Last update: 2024-09-19 12:55:46 UTC


README

PHP库,用于与UPnP (SSDP) 网络设备交互

### 进行中。

描述

这个库旨在成为一组方便的类,用于控制网络中的UPnP设备。也可能包括一些特定服务的类,例如Roku(ecp、simplevideoplayer和firefox)、Chromecast(castv2)、XBMC。任何可以通过SSDP发现的设备都将被考虑加入。如果将来实现了mDNS,包名可能会更改以更好地反映其角色/目的。

要求

PHP 5.4或更高版本

PHP协议缓冲模块需要编译和安装到您的环境中,以与chromecasts通信protobuf二进制消息。这仅适用于控制Chromecasts,对于纯UPnP实现或使用其他支持的设备,可以忽略此模块。有关详细信息,请参阅致谢和认可。

安装

此包通过packagist提供,并符合PSR-4规范。

{
    "require": {
        "jalder/upnp": "dev-master"
    }
}

示例

已编写多个示例,以展示各种设备类型的简单使用。

然而,以下是一个简单的Chromecast示例。该示例将播放一部电影,持续30秒,保持套接字连接,然后退出;

Chromecast设备
use jalder\Upnp\Chromecast;

$chromecast = new Chromecast();

print('searching...'.PHP_EOL);

$chromecasts = $chromecast->discover();
$movie = 'https://ia700408.us.archive.org/26/items/BigBuckBunny_328/BigBuckBunny_512kb.mp4';

if(!count($chromecasts)){
    print_r('no chromecasts found via SSDP'.PHP_EOL);
}

foreach($chromecasts as $c){
    print($c['description']['device']['friendlyName'].PHP_EOL);
    $app = new Chromecast\Applications\DefaultMediaReceiver($c);
    $remote = new Chromecast\Remote($c, $app);
    $result = $remote->play($movie);
    print_r($result);
}

### 致谢 & 认可 phpupnp.class.php 来自 artheus/PHP-UPnP https://github.com/artheus/PHP-UPnP,使用PHP套接字进行SSDP的示例。

Chromecast协议描述 https://github.com/thibauts/node-castv2#protocol-description 由thibauts编写。

由allegro编写的Google协议缓冲区的PHP实现,用于在allegro/php-protobuf中编码Chromecast通信有效负载 https://github.com/allegro/php-protobuf

### 进行中。

http://jalder.com

### 许可证 MIT许可证 (MIT)

版权所有 (c) 2014 John Alder

在此条件下,任何人免费获得此软件和相关文档的副本(“软件”),可以无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供副本的个人这样做,前提是

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论这些责任是在合同、侵权或其他情况下产生的,与软件或软件的使用或其他处理有关。