Делаю соединение через Swoole
$client = new Client(SWOOLE_SOCK_TCP);
$client->set([
'enable_coroutine' => true
]);
И потом пытаюсь принять файл audio отправленный через Swoole TCP server методом sendfile
мне приходит файл в виде строки. Я записываю в файл
$clientAnswer['file'] = '/var/www/courts/web/wwwroot/'.$path;
$file = "";
while($partFile = $client->recv(240)) {
if(strlen($partFile) > 0) {
$file .= $partFile;
}
}
if(strlen($file) > 0) {
$file = base64_encode($file);
file_put_contents($clientAnswer['file'].'.txt', base64_decode($file));
file_put_contents($clientAnswer['file'], print_r(base64_decode($file), true));
echo " \n save \n";
$name = $json['records'][0]['recordTitle'];
// Обновляем статус
$waveform = \Kernel\Waveform::writeTo($name, $waveform['waveform']);
$db->query("UPDATE `audio_files` SET `isLoad` = 1 WHERE `name` = '$name'")
->query("UPDATE `audio_files` SET `waveform` = '$waveform', `path` = '$path' WHERE `name` = '$name'")
->query("UPDATE `record_status` SET `status` = 'ready' WHERE id = $id");
$db->close();
} else {
echo "file dont save";
}
файл сохраняется и воспроизводится.
Проблема вот в чем если файл короткий минут 15 при, отправляю в яндекс транскрибацию то он распознается.
Если больше то нет, Не могу понять в чем причина