Как мне отправить данные в сокет в iOS - PullRequest
0 голосов
/ 28 сентября 2018

При нажатии кнопки «Говорить» (удерживать) я создаю очередь audio_capture и запускаю объект сокета.Всякий раз, когда данные собираются, я отправляю их через сокет.После отпускания кнопки «Разговор» я отключаю audio_capture и сокет.

Но в этом случае несколько аудиоданных не удается отправить в сокет в следующей ситуации:

  1. On «Speak»Событие button onClick (hold) Иногда для запуска сокета требуется мало времени, и данные, отправленные делегату сокета с помощью захвата звука, завершаются неудачно, в результате сокет еще не запущен.

  2. При отпускании кнопки «Говорить» Iзакройте сокет и очередь audio_capture.Здесь сокет немедленно закрывается, и данные, отправляемые с помощью audio_Capture, завершаются неудачно, говоря сокет закрывается.

Так как это следует реализовать, чтобы сокет не закрывался до тех пор, пока не будут отправлены данные вмассив при отпускании кнопки «Говорить».

1 Ответ

0 голосов
/ 28 сентября 2018

Моя идея такова:

  1. Когда пользователь удерживает кнопку, не предпринимайте ничего, кроме инициализации сокета, и дождитесь его завершения.Как только делегат сокета уведомит вас, что он готов, вы можете сообщить пользователю, что пора что-то сказать.
  2. IMO, аудиоданные должны быть помещены в очередь.Ваше приложение не должно закрывать сетевой сокет, пока очередь не будет успешно обработана.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...