Scripts (версия 3.xx)/Организация звукового меню
Версия от 06:30, 8 апреля 2014; McBurns (обсуждение | вклад)
Для организации звукового меню внутри сценария вам понадобится объект Device, создаваемый в каждом стандартном сценарии командой:
var Device = new CDevice ();
Итак, простейшее одноранговое меню:
// Считаем, что Device объявлено заранее
Device.StartDetectDTMF (1, // Ожидается нажатие одной клавиши
'0123456789', // Считаются значимыми клавиши от 0 до 9
'*#'); // Прерывают ожидание клавиши * и #
Device.Listen (10); // Ждём нажатия 10 секунд
Device.StopDetectDTMF (); // Остановка распознавания нажатых клавиш
var DetectedSignal = Device.ReceivedSignals (); // Значение нажатой клавиши в переменной DetectedSignal
switch (DetectedSignal) {
case '0':
// <здесь помещаем то, что выполняется при нажатии клавиши «0»>;
break;
case '1':
// <здесь помещаем то, что выполняется при нажатии клавиши «1»>;
break;
case '2':
// <здесь помещаем то, что выполняется при нажатии клавиши «2»>;
break;
case '3':
// <здесь помещаем то, что выполняется при нажатии клавиши «3»>;
break;
case '4':
// <здесь помещаем то, что выполняется при нажатии клавиши «4»>;
break;
case '5':
// <здесь помещаем то, что выполняется при нажатии клавиши «5»>;
break;
case '6':
// <здесь помещаем то, что выполняется при нажатии клавиши «6»>;
break;
case '7':
// <здесь помещаем то, что выполняется при нажатии клавиши «7»>;
break;
case '8':
// <здесь помещаем то, что выполняется при нажатии клавиши «8»>;
break;
case '9':
// <здесь помещаем то, что выполняется при нажатии клавиши «9»>;
break;
default:
// <здесь помещаем то, что выполняется, если нажаты клавиши для прерывания или не нажато ничего>;
break;
}
Для создания многоуровневого меню можно добавлять этот код в любой из пунктов case. Например:
// Считаем, что Device объявлено заранее
Device.StartDetectDTMF (1, // Ожидается нажатие одной клавиши
'0123'); // Считаются значимыми клавиши от 0 до 3
Device.Listen (10); // Ждём нажатия 10 секунд
Device.StopDetectDTMF (); // Остановка распознавания нажатых клавиш
var DetectedSignal = Device.ReceivedSignals (); // Значение нажатой клавиши в переменной DetectedSignal
switch (DetectedSignal) {
case '1': // При нажатии клавиши «1» делаем дополнительное голосовое меню
//<здесь размещаем код, воспроизводящий описание пунктов меню>
Device.StartDetectDTMF (1, // Ожидается нажатие одной клавиши
'12'); // Считаются значимыми клавиши 1 и 2
Device.Listen (10); // Ждём нажатия 10 секунд
Device.StopDetectDTMF (); // Остановка распознавания нажатых клавиш
DetectedSignal = Device.ReceivedSignals (); // Значение нажатой клавиши в переменной DetectedSignal
switch (DetectedSignal) {
case '1':
// <здесь помещаем то, что выполняется при нажатии клавиши «1»>;
break;
case '2':
// <здесь помещаем то, что выполняется при нажатии клавиши «2»>;
break;
default:
// <здесь помещаем то, что выполняется, если нажаты клавиши для прерывания или не нажато ничего>;
break;
}
break;
case '2':
// <здесь помещаем то, что выполняется при нажатии клавиши «2»>;
break;
case '3':
// <здесь помещаем то, что выполняется при нажатии клавиши «3»>;
break;
case '0':
default:
// <здесь помещаем то, что выполняется при нажатии клавиши «0», она считается нажатой по умолчанию>;
break;
}