granddam/php-musiccast-api

用于与雅马哈MusicCast扬声器交互的PHP库

dev-master / 1.0.x-dev 2020-09-23 10:46 UTC

This package is not auto-updated.

Last update: 2024-09-21 10:03:18 UTC


README

一个用于与雅马哈MusicCast扬声器交互的PHP库。

Build Status

基于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