Суть в том, что то что генериться из внутренних скриптов Алиса озвучивает без проблем, но как только дело доходит до того что приходит из Dialogflow у нее затык. Молчит. При том что файлы с озвучкой в папке ..cms/caсhed/voice появляются как-то через раз(когда на второй ответ диалога появится, когда на первый, а иногда вообще ни на один), хотя они даже те что появляются не проговаривает.
Молчит на всех терминалах, включая majordroid.
PHP_error
Код: Выделить всё
[23-Feb-2020 06:12:07 Europe/Moscow] PHP Stack trace:
[23-Feb-2020 06:12:07 Europe/Moscow] PHP 1. {main}() D:\xampp\htdocs\objects\index.php:0
[23-Feb-2020 06:12:07 Europe/Moscow] PHP 2. processSubscriptions() D:\xampp\htdocs\objects\index.php:175
[23-Feb-2020 06:12:07 Europe/Moscow] PHP 3. processSubscriptionByModule() D:\xampp\htdocs\lib\hooks.inc.php:147
[23-Feb-2020 06:12:07 Europe/Moscow] PHP 4. terminals->processSubscription() D:\xampp\htdocs\lib\hooks.inc.php:100
[23-Feb-2020 06:12:07 Europe/Moscow] PHP 5. terminals->terminalSay() D:\xampp\htdocs\modules\terminals\terminals.class.php:281
[23-Feb-2020 06:12:07 Europe/Moscow] PHP 6. majordroid->say() D:\xampp\htdocs\modules\terminals\terminals.class.php:246
[23-Feb-2020 06:12:07 Europe/Moscow] PHP 7. majordroid->sendMajorDroidCommand() D:\xampp\htdocs\modules\terminals\tts\majordroid.addon.php:12
[23-Feb-2020 06:12:07 Europe/Moscow] PHP 8. socket_connect() D:\xampp\htdocs\modules\terminals\tts\majordroid.addon.php:30
[23-Feb-2020 06:14:08 Europe/Moscow] PHP Warning: Illegal string offset 'state' in D:\xampp\htdocs\modules\terminals\tts\mediaplayer.addon.php on line 40
Код: Выделить всё
Warning: Illegal string offset 'TITLE' in D:\xampp\htdocs\modules\terminals\tts\mediaplayer.addon.php on line 64
$time_shift = 2 + (int)getMediaDura.....
https://github.com/sergejey/majordomo/b ... on.php#L47
Sleep тоже не помог.
https://github.com/sergejey/majordomo-y ... s.php#L326
Вот собственно фрагмент кода из mediaplayer.addon.php зде весь затык
Код: Выделить всё
// получаем данные оплеере для восстановления проигрываемого контента
$chek_restore = SQLSelectOne("SELECT * FROM jobs WHERE TITLE LIKE'" . 'allsay-target-' . $this->terminal['TITLE'] . '-number-' . "99999999998'");
if (!$chek_restore) {
$played = getPlayerStatus($this->terminal['NAME']);
//=================== Проверка 1 ==========================
debmes('Проверка 1 : played[]-> '.implode(PHP_EOL,$played)."\n");
if (($played['state'] == 'playing') and (stristr($played['file'], 'cms\cached\voice') === FALSE)) {
addScheduledJob('allsay-target-' . $this->terminal['TITLE'] . '-number-99999999998', "playMedia('" . $played['file'] . "', '" . $this->terminal['TITLE'] . "',1);", time() + 100, 4);
addScheduledJob('allsay-target-' . $this->terminal['TITLE'] . '-number-99999999999', "seekPlayerPosition('" . $this->terminal['TITLE'] . "'," . $played['time'] . ");", time() + 110, 4);
}
}
// dobavlyaem soobshenie v konec potom otsortituem
$time_shift = 2 + (int)getMediaDurationSeconds($cached_file); // необходимая задержка для перезапуска проигрівателя на факте 2 секундЫ
//DebMes("Add new message".$last_mesage,'terminals');
addScheduledJob('allsay-target-' . $this->terminal['TITLE'] . '-number-' . $number_message, "playMedia('" . $cached_file_url . "', '" . $this->terminal['TITLE'] . "');", time() + 1, $time_shift);
// vibiraem vse soobsheniya dla terminala s sortirovkoy po nazvaniyu
$all_messages = SQLSelect("SELECT * FROM jobs WHERE TITLE LIKE'" . 'allsay-target-' . $this->terminal['TITLE'] . '-number-' . "%' ORDER BY `TITLE` ASC");
$first_fields = reset($all_messages);
$runtime = (strtotime($first_fields['RUNTIME']));
$prev_message = '';
foreach ($all_messages as $message) {
//=================== Проверка 2 ==========================
debmes('Проверка 2 : Message[]-> '.implode(PHP_EOL, $message)."\n");
$expire = (strtotime($message['EXPIRE'])) - (strtotime($message['RUNTIME']));
$rec['ID'] = $message['ID'];
$rec['TITLE'] = $message['TITLE'];
$rec['COMMANDS'] = $message['COMMANDS'];
$rec['RUNTIME'] = date('Y-m-d H:i:s', $runtime);
$rec['EXPIRE'] = date('Y-m-d H:i:s', $runtime + $expire);
// proverka i udaleniye odinakovih soobsheniy
if ($prev_message['TITLE'] == $message['TITLE']) {
SQLExec("DELETE FROM jobs WHERE ID='" . $rec['ID'] . "'");
} else {
SQLUpdate('jobs', $rec);
}
$runtime = $runtime + $expire;
$prev_message = $message;
}
Код: Выделить всё
16:16:41 0.70651000 Проверка 1 : played[]->
16:16:41 0.81571100 Проверка 2 : Message[]-> 2896831
allsay-target-MAIN-number-2178
playMedia('http://192.168.1.70/cms/cached/voice/1e93e691209cfdded81c5c42053369f0_yandex.mp3', 'MAIN');
2020-02-23 16:16:42
2020-02-23 16:16:45
0
0
$played = getPlayerStatus($this->terminal['NAME']);
и в
$all_messages = SQLSelect("SELECT * FROM jobs WHERE TITLE LIKE'" . 'allsay-target-.....
Есть у кого мысли?