Богдан Троценко
Заказчик Богдан Троценко modoex | FL.RU

Богдан Троценко

На сайте 11 лет и 7 месяцев (заходил 10 лет 4 месяца 22 дня назад)
1
138
Рейтинг
138
Все (2)       Заказы (2)        Вакансии (0)       Конкурсы (0)
Разместить заказ
13 Июля 2014
Общая идея программы: записывать видео (со звуком) непрырывно и передавать на сервер.
Передача на сервер — не ваша забота; это впоминается в общей идеи лишь для того, чтобы
подчекнуть, что запись видео должна происходить частями.

Поддержка видео: 480p, 720p.
Поддержка звука: aac и mp3.

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

Один из классов должен наследовать IMyVideoRecorder

public interface IMyVideoRecorder {
void init(Context context, Object surfaceHolder,
IMyChunkListener chunkListener,
Object audioParameters,
Object videoParameters,
Runnable callWhenPrepared);
void start();
void stop();
void close();
}
-- сигнатуру изменить по надобности, но общую идею нужно сохранить

методу init() позволяется (и поощряется) продолжить инициализацию в фоне, но по завершению нужно вызвать callWhenPrepared из потока UI. Этот метод должен сделать
prepare() всему, что нужно и включить видоискатель.

после вызова start() начинается запись видео и по завершению записи кусочка
вызывается метод chunkListener.onChunkReceived() из AsyncTask'a.

public interface IMyChunkListener {
void onChunkReceived(byte[] data);
}

Для демонстрации основной части нужно написать демострационное приложение
* с видоискателем,
* с кнопочками "начать запись" и "остановить запись",
* при переключении в другую программу запись должна продолжаться,
при переключении назад в программу видоискатель должен возобновлять работу.

Критерий оценки приложения:
а) Будет записан фрагмент в 30м некоторого фильма.
Затем все кусочки будут склеены назад в один фрагмент:
avconv -i concat:file1.mp4\|file2.mp4 -c copy output.mp4
При просмотре фрагмента, особенно в конце, звук должен соотвествовать картинке.
б) Будет записано проигривание музыки, затем все кусочки склеены в один фрагмент
той же коммандой. При проигривавании фрагмента музыка должна звучать качественно,
без щелчков и искажений в моментах, где склеивались части.

Код на java, проект на android studio.
Версия android: 4.0+
Исспользование сторонних библиотек нежелательно и обязательно оговаривается отдельно.

Коментарии:
* У меня получилась запись с помощью MediaEncoder'а, но записывать звук и коррегировать длину отрезка для меня оказалось сложновато. Поэтому следуюет подчеркнуть важность критериев в этой задаче.

Прошло времени с момента публикации: 10 лет 8 месяцев 14 часов 50 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК
03 Октября 2013
По договоренности
Подробнее:

1) для обнаружения устройств использовать Network Service Discovery (именно тот, который является частью Android SDK)

2) технология программы на Android – Android SDK (), java.

3) технология программы на Windows – .Net Framework 4, чистый C#



Демонстрационные программы (входят в результат):

а) Android

Простая программа со списком компьютеров, которые найдены с помощью Network Service Discovery. При нажатии на имя компьютера создается соединение и отправляется случайное число 0..1000, которое также отображается на экране.

б) Windows

Простое WinForms или WPF приложение со списком обнаруженных устройств. При клике (double-клике) на имени устройства инициирует соединение. Также принимает подключения и выводит на экран полученное число.



Таким образом, инициировать соединение может как Android так и Windows, но взаимодействие то же самое – число генерится на Android и отображается в обоих программах.



[Возможно, дотошно] О классах:

в Android программе логика Network Service Discovery – в отдельном классе, который посредством listener'a сообщает об обнаруженых компьютерах. Отдельный класс, который передает число (сгенерированное в конструкторе), посредством listener'a передает число на UI.

в Windows программе должен быть отдельный класс, который обнаруживает другие устройства и сообщает об этом с помощью событий. Отдельный класс, который получает Stream, читает число и с помощью событий извещает UI.



Другое:

При возникновении вопросов, пожалуйста, обращайтесь.


Прошло времени с момента публикации: 11 лет 5 месяцев 10 дней 21 час 11 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».