Большинство примеров кода, которые я видел для записи аудио, имеют код в начале, чтобы проверить, существует ли звуковой движок и, если нет, создать его.
-(void) startRecording {
if (audioEngine == nil) {
audioEngine = [AVAudioEngine new];
}
Затем, чтобы остановить работу звукового движка, обычно пишется:
[audioEngine stop];
В отличие от него, для многообещающего распознавания в начале кода вводят код для отмены.это и начать заново:
if (recognitionTask) {
[recognitionTask cancel];
recognitionTask = nil;
}
Когда вы останавливаете движок, который явно освобождает некоторые ресурсы, вы тем не менее оставляете его выделенным?
Если все элементы речи, звуковой движок, поскольку задача и запрос используются вместе, казалось бы, проще создать их и уничтожить все одновременно.Мой конкретный вопрос, могу ли я это сделать.Однако меня смущает, почему механизм обычно создается только в том случае, если он не существует, но другие элементы всегда отменяются, а затем воссоздаются.
Заранее благодарим за понимание того, почему к ним относятся по-разному.