запису аудіо за допомогою кнопки «Вибрати».
Для того, щоб встановити з'єднання з комп'ютером-сервером необхідно натиснути кнопку «Підключитися» (Мал. 3.3.2.).
Рис. 3.3.2. Вікно програми-клієнта
Інформація про користувачів і перегляд подій на сервері
Інформацію про зарегестрірованних на сервері користувачах можна побачити у вікні програми сервера. Додати нових користувачів можна, занісши необхідну інформацію у файл app.config, який знаходиться в одній Директорії з файлом програми сервера. Інформацію про події сервера можна побачити у вікні «Журнал» програми сервера (Мал. 3.3.3.).
Рис. 3.3.3. Інформація про користувачів та події на сервері
Інформація про користувачів і перегляд подій на клієнті
Після того, як користувач встановить зв'язок з сервером, у вікні почнеться розподіл аудіо, а у вікні програми-клієнта з'явиться список користувачів, підключених до сервера в даний момент (Рис. 3.3.4.).
Рис. 3.3.4. Вікно програми-клієнта. Список учасників
Інформацію про події клієнта можна побачити на вкладці «Журнал» (Мал. 3.3.5.).
Рис. 3.3.5. Вікно програми-клієнта. Журнал
Тестування проекту
Проект був ретельно протестований. Були виявлені такі недоліки:
· Відтворення аудіоданих бібліотекою NAudio відбувається повільніше, ніж запис, тому навіть при дуже швидкому з'єднанні з'являється затримка. Вона ліквідується за допомогою механізму синхронізації отримання даних та відтворення, що призводить до часткової втрати даних і погіршення якості відтворення .
· Простота мехнізма формування вихідних аудіоданих сервером призводить до виникнення затримок відтворення, які ліквідуються механізмами синхронізації, що призводить до погіршення якості відтворення.
В цілому, програми працюють стабільно, швидкість посилки і виконання команд не викликає нарікань.
По завершенні роботи над проектом, була розроблена демо-версія програми, що володіє простим інтерфейсом і включає в себе всі заплановані на початку функції, з яких повністю реалізовані:
· Передача команд сервера на клієнт.
· Виконання команд сервера клієнтом, а саме:
· Авторизація.
· Відправка аудіоданих.
· Отримання аудіоданих.
· Відтворення аудіоданих.
· Збереження всієї історії роботи в лог-файл.
Основними напрямками вдосконалення проекту надалі будуть:
· Введення більш складного механізму синхронізації, який дозволить поліпшити якість одержуваних клієнтом аудіоданих.
· Збільшення частоти дискретизації записуваних аудіоданих.
· Оптимізація існуючих алгоритмів і введення нових (наприклад - стиснення аудіоданих) для збільшення швидкості передачі даних.
Висновок
У рамках даного проекту було розроблено клієнт-серверний додаток, призначений для проведення аудіоконференцій.
Функціональність програми обумовлена ??базовими вимогами до програм такого роду і включає в себе:
1. Можливість передачі повідомлень з сервера на клієнтську програму.
2. Можливість запису аудіоданих на клієнтському додатку.
. Можливість передачі аудіоданих серверному додатком.
. Можливість роботи з декількома клієнтами серверним додатком.
. Можливість об'єднання аудіоданих клієнтів і відправка цих даних клієнтам.
. Можливість відтворення аудіоданих клієнтським додатком.
Перед початком роботи були розглянуті наскільки аналогічних додатків. Їх реалізація порівнювалася за кількома критеріями: необхідність, зручність, швидкість та ін. Після даного аналізу були виділені функції, необхідні для реалізації базового проекту.
Розроблена програма володіє простим для користувача інтерфейсом, який без додаткових пояснень відображає всю функціональність проекту.
Виконані завдання відображають основні принципи реалізації аудиоконференции. Таким чином, були відпрацьовані базові механізми проведення аудіоконференцій.
Додаток 1
Вихідні програмні коди