2016-09-01 5 views
0

Я разрабатываю редактор веб-видео, который пользователи могут редактировать видео через интерфейс временной шкалы, аналогичный красной части прямоугольника на следующем рисунке.Модель данных для редактирования веб-видео

enter image description here

Для достижения этой цели я считаю, что должно быть древовидные модели данных на стороне сервера, чтобы сохранить все данные, используемые для операций редактирования, как показано на следующей схеме.

enter image description here Принимая график в интерфейсе изображения в качестве примера, есть один TimeLine объект, который имеет один VideoGroup суб-объект и один AudioGroup суб-объект. Объект VideoGroup имеет коллекцию из 2 объектов Трека, а именно Video 1 и Video 2. The AudioGroup Объект имеет 1 объект дорожки с именем Audio 1. Video 1, первый объект трека объекта VideoGroup имеет набор из 4 объектов мультимедиа, второй объект трека Video 2 имеет 6. В то время как Audio 1, единственный объект трека объекта AudioGroup не имеет.

Когда речь заходит о моем приложении, в задней части модели данных используется приложение для выполнения фактических операций редактирования. На лицевой стороне он должен отображаться на веб-странице графически, как показано на рисунке интерфейса. Для достижения этой цели мне интересно, что, поскольку на сервере уже есть модель данных, мне нужно создать соответствующую модель данных JavaScript на стороне клиента? Если нет, передняя веб-страница должна перезагружать модель данных из базы данных каждый раз, когда пользователь выполнил операцию редактирования, которая ее модифицирует, чтобы отобразить обновленную версию для конечного пользователя. Так ли так идти?

ответ

0

Вид птиц глаза, высокий уровень ответа:

звучит как построение единого приложения страницы. Во-первых, ваше приложение будет загружать требуемые видео/аудио/данные через API, который представляет различные модели/классы вашей структуры данных. В браузере вы загрузите эти данные в фреймворк (Angular, React, Ember или что хотите).

Модели, более вероятно, отражают структуру данных, на которой у вас есть серверная сторона, но могут быть варианты для обработки конкретных проблем с интерфейсом.

Структура интерфейса будет отображать вашу временную шкалу и обрабатывать различные действия, которые делает пользователь.

Либо через действие сохранения или периодически вы отправляете (PUT) обновления обратно на сервер через ваш API, записывая изменения пользователей на временную шкалу.

+0

Если я правильно понимаю ваш ответ, вы предлагаете мне создать соответствующую модель данных в интерфейсе, используя JavaScript. Но из-за ограничений по времени для моего проекта я предпочитаю не создавать его, поскольку я считаю, что проще реализовать модель загрузки с конца сервера, а не строить две сложные модели данных на стороне клиента и сервера и писать код для их синхронизации. Хотя я не уверен, может ли мой предпочтительный способ вызвать другие большие проблемы для моего веб-приложения. – Ivan

+0

Я думаю, что ваше приложение по своей природе будет иметь много пользовательских взаимодействий. Вероятно, вам захочется, чтобы инфраструктура frontend структурировала эти проблемы в любом случае. Вы решили использовать свой предпочтительный стек технологий? – sdeburca

+0

Что касается технологического стека, я использую API ASP.NET и DirectShow.NET API на сервере для редактирования видео.Что касается front-end, я использую HTML Canvas для отображения интерфейса временной шкалы и записи чистого кода JavaScript для обработки пользовательских событий и обмена данными с сервером. Поскольку у меня нет большого опыта в веб-разработке, я не могу сейчас найти лучший способ. – Ivan