• Как правильно и какие тренды существуют?

    @Pluzhnik
    Wowza, Android
    Если вам подходит, то вполне правильный подход.
    Каждое приложение индивидуально, так что общих правил нет.
    В тренде как обычно всякие надстройки и переосмысления, типа Conductor заменяющего собой фрагменты, и работающий в одной активити. Но если вас устраивают фрагменты, то почему бы и нет?
    Ответ написан
    1 комментарий
  • Как сделать вот такое?

    @Pluzhnik
    Wowza, Android
    Все просто.
    Сам блок "Приложение", это CardView.
    Внутри него уже либо кастомные кнопки (что геморройно), либо группа нескольких LinearLayout с картинкой, текстом и "кликабельным" бэкграундом. Вот и все
    Ответ написан
    1 комментарий
  • Как запретить вернуться в прошлое activity и удалить его из памяти?

    @Pluzhnik
    Wowza, Android
    Если у вас это "первая" (Launch) активити, воспользуйтесь советом automatik
    Если вы вызывали эту активити через startActivity() то вместо finish() используйте finishAffinity();
    Ответ написан
    1 комментарий
  • Как поднять кнопку?

    @Pluzhnik
    Wowza, Android
    Попробуйте у FAB убрать app:layout_anchorGravity="bottom|right|end"
    Я не совсем понимаю для чего он тут используется в сочетании с android:layout_gravity="end|bottom"
    Ответ написан
    Комментировать
  • Как отключить субтитры в Android MediaPlayer?

    @Pluzhnik Автор вопроса
    Wowza, Android
    Итак, отвечу сам себе. Вкратце ответ выглядит так:

    for(int i = 0; i < mMediaPlayer.getTrackInfo().length; i++ ){
        MediaPlayer.TrackInfo trackInfo = mMediaPlayer.getTrackInfo()[i];
        if(trackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT){
            mediaPlayer.selectTrack(i);
            mediaPlayer.deselectTrack(i);
        }
    }


    Теперь опишу что тут происходит.
    После того как плеер загрузил данные, у него можно запросить список доступных треков (видео, аудио, субтитры). Каждый трек может находиться в состоянии selected (проигрывается) и deselected (не проигрывается). При старте плеера, трек с аудио и видео автоматически получают состояние selected, а остальные deselected. В Android 4.4 (на TV Box с которым я работаю) по какой то причине трек с субтитрами все равно проигрывается, даже не смотря на то, что он не выбран.
    Чтобы отключить этот трек, его надо сначала найти в массиве всех треков, после чего присвоить ему статус selected и сразу же его убрать. Таким образом мы полноценно выключаем этот трек из проигрывания.
    Внимание! При попытке вызвать mediaPlayer.deselectTrack(i); у трека, который не был выбран, будет выброшен RuntimeException о котором не упоминается в документации!
    Ну и оригинальная статься о MediaPlayer где можно подробнее узнать о методах mediaPlayer.selectTrack(i); и mediaPlayer.deselectTrack(i);
    Внимание 2! В AOSP существует баг, роняющий плеер на некоторых видео со встроенными субтитрами. Обсуждение в группе AOSP
    В настоящий момент решение неизвестно
    Ответ написан
    Комментировать
  • Как работать с youtube api в android приложении?

    @Pluzhnik
    Wowza, Android
    https://developers.google.com/api-client-library/j... - Документация по API для поиска, добавления, получения информации о видео (Внимание, при добавлении всех зависимостей этой библиотеки в проект, велика вероятность столкнуться с проблемой в 65к методов, будьте внимательны)
    https://developers.google.com/youtube/android/player/ - Документация по API для воспроизведения видео.
    Везде есть примеры, я разобрался по ней, в течении нескольких часов. Конкретнее ничего подсказать не могу, так как нет конкретного вопроса.
    Ответ написан
    Комментировать
  • Опять про wifi роутер в небольшой офис, возможно ли всех посадить на AC?

    @Pluzhnik
    Wowza, Android
    Обратите внимание на продукты UniFi, ценник адекватный, комплекта из трех точек обычных и одной Pro нам хватало, чтобы покрыть четырехэтажное здание с прозрачным роумингом между точками, и производительностью достаточной, для одновременных 50+ подключений. Правда я не уверен, могут ли они DHCP, скорее всего к ним еще маршрутизатор понадобится.
    Ответ написан
    Комментировать