jalder / upnp
PHP应用中的UPnP工具
Requires (Dev)
- phpunit/phpunit: 4.1.*
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。
### 进行中。
### 许可证 MIT许可证 (MIT)
版权所有 (c) 2014 John Alder
在此条件下,任何人免费获得此软件和相关文档的副本(“软件”),可以无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供副本的个人这样做,前提是
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论这些责任是在合同、侵权或其他情况下产生的,与软件或软件的使用或其他处理有关。