@BeyonD31

Как через Swoole правильно принимать аудио файлы?

Делаю соединение через 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 при, отправляю в яндекс транскрибацию то он распознается.
Если больше то нет, Не могу понять в чем причина
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы