Воспроизведение mp3 либо wav файла на колонку Google Nest Mini 2
Долго искал возможность воспроизведения файла на колонку Google Nest Mini 2. Не нашел.
Сделал следующее решение:
Требует наличие статического адреса (доступ из мира)!
[YOUR_STATIC_IP] заменить в коде на ваш IP или доменное имя.
Само собой ранее должен бить добавлен терминал. У меня назван googleNest1.
Если используете авторизацию, то ее следует отключить добавив рядом с друними location
/etc/nginx/sites-available/default:
location /cms/sounds {
auth_basic off;
}
Majordomo -> Panel -> Objects - > Scripts -> Add new script
name: playSoundToTerminal
Code:
// Usage: runScript('playSoundToTerminal', array('filename'=>'dingdong', 'vol'=>'25', 'terminal'=>'googleNest1'));
// File name
if ($params['filename']){
if (file_exists(ROOT . 'cms/sounds/' . $params['filename'] . '.mp3')){
$params['filename'] = $params['filename'] . '.mp3';
}elseif (file_exists(ROOT . 'cms/sounds/' . $params['filename'] . '.wav')){
$params['filename'] = $params['filename'] . '.wav';
}
if (!preg_match("/^https?:/i",$params['filename'])){
$filename = 'http://[YOUR_STATIC_IP]/cms/sounds/' . $params['filename'];
}else{
$filename = $params['filename'];
}
unset($params['filename']);
}else{
return 'unknown filename';
}
// Speaker volume
if ($params['vol']){ // 22
$vol = $params['vol'];
unset($params['vol']);
}else{
$vol = 25;
}
// Play file
if ($params['terminal']){ // 'googleNest1'
$terminal = $params['terminal'];
unset($params['terminal']);
setGlobal('RadioSetting.PlayTerminal', $terminal);
callMethod('RadioSetting.Control', array('cmd'=>'stop'));
callMethod('RadioSetting.Control', array('vol' => $vol));
return playMedia($filename,$terminal);
}else{
return playMedia($filename);
#return playSound($filename);
}
Для воспроизведения произвольного текста на колонку все еще разискивается решение
Odessa, Украина