Рубрики
4. Полезняшки Java

Про интерфейс: Map<K,V>

Недавно от товарища пришел вопрос на засыпку: "Почему в интерфейсe java.util.Map метод get в качестве ключа принимает Object, а метод put использует женерики?"

    V get(Object key);
    V put(K key, V value);

Сходу ответить не смог, пришлось разбираться.

Рубрики
Java

Android, RTSP и 10 секунд

Работа с мультимедийными данными в Android-е проработана довольно не плохо, но к сожалению существуют ряд определенных сложностей.
Например, для проигрывания потокового видео можно использовать VideoView или использовать напрямую низкоуровневый класс MediaPlayer.
Естественно, VideoView внутри использует тот же MediaPlayer.
Примеры работы с VideoView и MediaPlayer есть в стандартной поставке: ApiDemos
Примеры вполне пригодные для самообучения и достаточно подробные. Самое интересное возникает при работе в реальной жизни.

Например, при начале трансляции по протоколу RTSP может возникнуть более чем ~10 секундная задержка.

Рубрики
3. Инструментарий Java

Java Zip + русские буквы в названиях файлов

Баг №4244499

Этот баг был зарегистрирован еще в 1999г.
Проблема была не только с русскими файлами, а например с французскими (как в примере).
Корни довольно глубокие и существовали серьезные (надеюсь) причины, по которым эту ошибку долгое время не исправляли. В итоге, много-много лет в Java нельзя было сделать простыми штатными средствами zip-архив, который бы содержал файлы с именами не на латинице.

К сожалению, жизнь такова, что все это время некоторых java-программистов заставляли делать такие zip-архивы. Приходилось использовать например apache-вский commons-compress.

Использовать очень просто. Алгоритм буквально в два шага: