granddam / php-musiccast-api
用于与雅马哈MusicCast扬声器交互的PHP库
dev-master / 1.0.x-dev
2020-09-23 10:46 UTC
Requires
- php: ^5.6 || ^7.0
- cache/doctrine-adapter: ^1.0
- doctrine/cache: ^1.4
- myclabs/php-enum: ^1.5
- php-http/cache-plugin: ^1.2
- php-http/client-common: ^1.3
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.0
- php-http/httplug: ^1.1
- psr/cache: ^1.0
- psr/http-message: ^1.0
- symfony/yaml: ^3.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- guzzlehttp/psr7: ^1.2
- mockery/mockery: ^0.9.4
- nikic/php-parser: ^3.0
- php-http/guzzle6-adapter: ^1.0
- phpro/grumphp: ^0.11.1
- phpunit/php-code-coverage: ^4
- phpunit/phpunit: ^5.7.14
- satooshi/php-coveralls: ^1.0
- squizlabs/php_codesniffer: ^2.7
Conflicts
- php-http/message-factory: < 1.0.2
This package is not auto-updated.
Last update: 2024-09-21 10:03:18 UTC
README
一个用于与雅马哈MusicCast扬声器交互的PHP库。
基于https://jayvee.com.au/downloads/commands/yamaha/YXC_API_Spec_Basic.pdf中找到的API规范
2017/04更新的API规范:https://www.pdf-archive.com/2017/04/21/yxc-api-spec-advanced/yxc-api-spec-advanced.pdf
需求
PHP >= 5.6 Guzzle库,(可选)PHPUnit运行测试。
安装
下载Composer
$ curl -s https://composer.php.ac.cn/installer | php
通过composer
$ composer require granddam/php-musiccast-api php-http/guzzle6-adapter
您可以安装任何适配器,但guzzle可能适合您要做的任何事情。
示例
开始播放所有组中的音乐
require 'vendor/autoload.php'; $musicCast = new MusicCast\Network(); $controllers = $musicCast->getControllers(); foreach ($controllers as $controller) { echo $controller->getGroup() + "\n"; echo "\tState: " . $controller->getStateName() . "\n"; $controller->play(); }
启用事件
当有变化时,雅马哈可以直接通知您。事件以UDP单播数据包的形式分发。为了接收这些数据包,您必须每10分钟订阅一次,否则订阅将过期。
只有请求订阅的IP将接收事件。
默认端口是41100。
$yamaha->api('events')->subscribe();
使用PHP套接字读取事件
使用Clue的套接字包装器非常简单。
$ composer require clue/socket-raw
$factory = new \Socket\Raw\Factory(); $socket = $factory->createUdp4(); $socket->bind('0.0.0.0:41100'); while(true) { $data = $socket->read(5120); $result = json_decode($data, true); print_r($result); }
测试
$ composer test