PopUp окно VS Push-уведомления: что выбрать?

ipp-screen-2-2

push

pushmain

glav1-11

zachem-nuzhno-asio-dlya-audiofilov-22

zachem-nuzhno-asio-dlya-audiofilov-12

Ситуация: арбитражник хочет залить траф с пуш-уведомлений. Он читает статьи, регистрируется в Push-сетке и настраивает таргет. На этом этапе байеры обычно сталкиваются с двумя проблемами:

  • Страх блокировки. Google обещал нам Chrome 80, который должен был уничтожить пуши как источник трафика. Особых изменений до сих пор не произошло, но что будет в обозримом будущем пока не совсем ясно.
  • Только Android и Windows. Пуш-уведомления нельзя рассылать тем, кто пользуется макбуками, айфонами и айпадами. Это плохо — теряется огромный пласт платежеспособной аудитории.

Ребята из PropellerAds долго думали, как решить эти проблемы. Недавно они релизнули новый тип пуш-уведомлений. Он называется In-Page Push. В этой статье рассказываем, как работать с уникальным типом трафика, что потестить и когда стоит переходить на этот тип трафика.

Путь звука от файла до ЦАП

Каким требованиям должен удовлетворять плеер? Прежде всего должна быть поддержка вывода звука как минимум через один интерфейс: WASAPI (Exclusive) или ASIO. Остальные требования — это возможность отключения внутренних обработок звука.

Для Windows это:

  • Foobar2000
  • AIMP
  • Album Player

Рассмотрим путь звука от файла до ЦАП звукового интерфейса (звуковой карты или внешнего ЦАП).

Схема максимально упрощена

118

WASAPI

img_4614

Плеер отвечает за декодирование файла и передачу в систему через один из интерфейсов, MME или ASIO. MME – это звуковая подсистема Windows, которая используется по умолчанию во всех плеерах и программах (аудио плеерах, видео плеерах, браузерах, Skype, играх и прочих программах). В MME интерфейсе есть отдельный режим WASAPI Exclusive, который позволяет обойти ресемплер и микшер Windows.

Просмотр видео с выводом звука через WASAPI возможен в плеере Light Alloy

При воспроизведении из под WASAPI звук на выходе возможен только от одного проигрывателя (программы), все остальные звуковые потоки будут в режиме «mute». Некоторые программы могут выдать ошибку, что «звуковое устройство недоступно». В профессиональных картах возможно одновременное воспроизведение звукового потока из WASAPI и ASIO, т.к. звуковые потоки обходят микшер Windows, но после попадают в драйвер звукового устройства и далее смешиваются микшером звуковой карты. Там, где ASIO сделано через WASAPI, могту быть различные проблемы со стабильностью работы.

Для того, что бы на выходе получить звук одновременно от нескольких программ, его надо привести в единую сетку разрядности и частоты дискретизации, а потом все потоки просуммировать. В прошлом поколении ОС XP для MME существовал автомат опорной частоты и при воспроизведении звука лишь из одной программы отключался ресемплинг, системный микшер не вносил никаких существенных изменений в звуковой поток. В Windows 7 все работает принудительно, независимо от количества программ, воспроизводящих звук. Автомат опорной частоты возможен только для WASAPI и ASIO при соответствующей поддержке драйвера звукового устройства.

ASIO – это профессиональная звуковая подсистема для программ с обработкой звука от Steinberg. Основным преимуществом ASIO является возможность получить ультранизкие задержки звукового сигнала, которые позволяют обрабатывать звук в режиме реального времени при игре вживую на midi инструментах.

Через ASIO звуковой поток направляется в обход микшера Windows.

ASIO поддерживают не все звуковые карты, в то время как WASAPI все.

По этой причине не стоит гнаться за ASIO поддержкой, как за «манной небесной». Тем не менее, после того, как звуковой поток попадает в драйвер звукового интерфейса, за дельнейшую транспортировку звукового потока отвечает именно драйвер и тут возможны любые сюрпризы. Проблемы могут быть как с WASAPI, так и ASIO независимо друг от друга и наличие двух интерфейсов повышает шансы на качественное воспроизведение звука.

Что может лишнего делать драйвер звукового интерфейса? Тоже самое, что и микшер Windows – ресемплинг и микширование каналов. Лучше не поленится и изучить внимательно настройки звуковой карты для оптимального вывода звука.

Как влияет звуковая подсистема ОС на звук

Зачем нужно ASIO для аудиофилов? - 3

В ОС много программ, которые являются источниками звука, это Skype, ICQ, браузер с музыкой в вКонтакте, системными звуками, видеопроигрывателем и другими приложениями. Все эти звуковые потоки различаются как дискретностью, так и частотой семплирования, а на ЦАП должен придти всего один стерео поток с определенной разрядностью и частотой дискретизации. Соответственно все звуковые потоки необходимо заранее смикшировать. Что бы представить уровень проблемы, представим, что есть несколько фотографий с разными исходными разрешениями, которые нужно одновременно вывести на экран ЖК монитора, при этом каждая фотография должна заполнить весь экран. Если фото вывести пиксель в пиксель и фото займет часть экрана – это будет аналогично тому, что звук будет воспроизводиться медленнее или быстрее.

Если разрешение фотографии 600х480 пикселей, а разрешение монитора 1024х768, то необходимо фотографию предварительно перевести в 1024х768. Четкость фотографии несомненно снизится. Примерно так страдает и звук, который система пересчитывает из 44,100 кГц в 48000 или 96000 кГц. Качество ресемплера в Windows оставляет желать лучшего, т.к. идет максимальная экономия ресурсов.

Возвращаясь к фотографии, у нас есть фото с разрешением в 600х480 пикселей, 1024х768 пикселей и 2048х1536 пикселей и все фотографии надо вывести на 1024х768 пикселей. До сложения необходимо 600х480 и 2048х1536 пересчитать в 1024х768 и после три фотографии просуммировать, накладывая одну картинку на другую.

Обычно только одна программа воспроизводит основной звук, а остальные проигрывают звук периодически (ICQ, Skype) и их можно сравнить с логотипами и надписями поверх основной фотографии. Вполне очевидно, что картинка с исходным разрешением в 1024х768 меньше всего пострадает в качестве и если она будет основной и совпадать с разрешением монитора, то в снизится качество лишь вспомогательных картинок: логотип и надписи.

Так же и в системе можно формально выставить конечную частоту семплирования 44.100 кГц под аудиоплеер и пренебречь качеством системных звуков, которые звучат лишь время от времени.

Однако для наименьших потерь в качестве при микшировании звуковых потоков добавляется специальный шум (диттер) и системе все равно, одна программа воспроизводит звук или несколько. Таким образом, даже при воспроизведении всего одного звукового потока без его конвертирования в другую частоту семплирования, он все равно подвергается обработке и уже не поступит на ЦАП «бит в бит».

Если раньше ОС отслеживала, с какой частотой семплирования поступают на вход данные и автоматически выставляла максимальную поддерживаемую звуковой картой частоту дискретизации к входящим звуковым потокам (например при входящих 22, 44,1 и 48 кГц выставлялась 48 кГц, а при 22 и 44,1 понижалась до 44,1 кГц ), то начиная с Win7 в системе принудительно выставляется общая частота семплирования и автомата опорной частоты нет. Стабильность ОС повысилась, но метод не всех обрадовал.

Описанная ситуация в равной степени справедлива для всех ОС и платформ, которые могут воспроизводить звук одновременно с разных программ. В мобильном телефоне это к примеру воспроизведение телефонного разговора и системный сигнал о севшей батарее.

Зачем нужно ASIO для аудиофилов? - 4

Условно общая схема выглядит так. При использовании ASIO Звуковой поток направляется сразу в микшер драйвера звуковой карты (Mixer Driver), минуя ресемплер (SRC) и микшер ОС.
Для необходимости воспроизвести звуковой поток «бит-в-бит” есть специальные режимы, в ОС Windows это «Kernel Streaming» (версии до XP) и WASAPI (версии после XP включительно). В таком режиме право передать звуковой поток имеет только одна программа в системе и тут полностью исключается микширование и пересчет данных. Более того, есть поддержка системой автоматического переключения опорной частоты (но при соответствующей поддержке драйвера звуковой карты).

Этот режим не рекомендуется использовать обычному пользователю, т.к. несет за собой разные проблемы. Например, пользователь включает Foobar2000 с WASAPI и после запускает видео ролик с ранее запущенного браузера. Звуковой драйвер не принимает звуковой поток от браузера и происходит крах флеш плагина. Налицо — система порушилась, а это: «печаль, беда и огорченье». Производители ПО крайне редко делают возможность вывода звука в KS/WASAPI, т.к. воинствующие пользователи будут винить в проблемах не свои кривые руки, а программу «из-за которой все порушилось».

Режимы KS/WASAPI можно встретить только в аудиоредакторах, секвенсорах и редких программных плеерах, предназначенных для аудиофилов – под подготовленных пользователей, которые понимают, что будет страдать стабильность работы ОС и кроме плеера/аудиоредактора/секвенсора звука не будет. Продвинутые аудиофилы, отказавшиеся от встроенного звука обычно для музыки используют отдельную звуковую карту, а системные звуки направляют на встроенный звук, что обеспечивает высокую стабильность работы ОС.

Читайте также:  Комната, которой нет (Артем Тихомиров, 2005)

Т.е. по сути, KS/WASAPI – это идеальный вариант для вывода звука для аудиофила. Поддерживается в Foobar2000, AIMP, Winamp. Тем, кто хочет и фильмы в качестве слушать – есть плеер Light Alloy.

Плеер Foobar2000

Одним из самых популярных был и остается плеер Foobar2000. Если в старые добрые времена Foobar2000 был альтернативой Winamp, то сейчас вместо Winamp популярен AIMP.

К преимуществам Foobar2000 можно отнести максимально простой и понятный интерфейс управления. Большое количество расширений позволяет настроить функциональность индивидуально. В какой-то степени в этом и минус плеера. В противовес AIMP уже сразу готовый к работе со всеми плагинами, но требует проверки всех настроек с отключением лишней обработки звука.

К сожалению, Foobar2000 скачивается в базовой комплектации, в которую поддержка WASAPI и ASIO не входят. Их надо скачать отдельно со страницы компонентов.

Установка и настройка foobar2000

  • Устанавливаем foobar2000
  • Запускаем скачанные компоненты. В последних версиях необходимо просто запустить скачанные файлы и их foobar2000 автоматически в себя добавит. В старых версиях их надо было вручную добавлять в папку программы

Плеер можно скачать с официального сайта https://www.foobar2000.org/

Теперь настраиваем foobar2000

413

Проверяем, что во вкладке эффектов (Active DSPs) пусто.

511

Теперь выбираем интерфейс (звуковую карту или ЦАП) для воспроизведения.

68

Без загруженных в foobar2000 плагинов WASAPI и ASIO будет доступен только DS. WASAPI делятся на event и push – принципиальной разницы между ними нет. При выборе ASIO или WASAPI используйте любой вывод, который работает более стабильно. У меня на практике WASAPI чаще работает стабильнее. Причиной является то, что ASIO хорошо работает в основном в профессиональных устройствах, а в бытовых устройствах реализация ASIO формальная.

IT Keys

Согласно энциклопедиям, Push — это технология распространения информации от сервера клиенту. Однако, в последнее время это слово чаще всего употребляется в отношении уведомлений на мобильных устройствах. Именно о Push уведомлениях мы и поговорим в данной статье.

Под мобильными push-уведомлениями чаще всего понимают небольшие плашки с сообщениями, которые появляются в верхней части экрана, в т.н. «шторке», на экране блокировки.

Такое понятие, как push-notifications, стало популярным после внедрения яблочной компанией сервиса Apple Push Notification Service (APNS) для передачи уведомлений на устройства под iOS 3. Стоит упомянуть, что эту революционную инновацию Apple внедрили в iOS почти на год позже, чем Google в ОС Android.

Как бы то ни было, на почве push уведомлений для мобильных выросло целые семейство сервисов и инструментов от разных компаний: Apple после добавления системы пушей (APNS) для айфонов реализовали их и для OS X и, совсем недавно, для Safari. Google создали Android Cloud to Device Messaging (C2DM) в далеком 2008 году, заменив его на Google Cloud Messaging (GCM) в 2012 году. Естественно, при помощи данного сервиса пушить можно также и в Chrome приложения. В Microsoft, как обычно, решили не отставать и создали MPNS (попробуйте сами угадать значение этой аббревиатуры). Таким образом, push-уведомления доступны на Windows Phone начиная с седьмой ее версии.

Но почему именно такой велосипед, как push-технология, реализуют во всех мобильных системах для доставки сообщений? Причина проста: экономия. Ведь данная технология хороша именно тем, что при ее использовании для получения информации нет необходимости постоянно посылать запросы из приложения. И, соответственно, не нужно держать его работающим в фоне: экономится заряд батареи и интернет-трафик. Пользователь получает в связи с этим еще одну плюшку: оперативная память устройства не захламляется лишними приложениями, ждущими запросов с сервера.

Здесь следует обозначить разницу между такими вещами, как push, push-уведомления и уведомления, генерируемые локальными приложениями в системе. Push — это технология, которая используется для доставки информации. Уведомления же генерируются внутри системы и выглядят они в разных ОС по-разному.

Типы уведомлений в мобильных ОС

В iOS есть три типа push-уведомлений: Audio — об уведомлении пользователю сообщается путем проигрывания звукового уведомления Audio/Banners — проигрывается звуковое сообщение и т.н. “баннер” появляется на экране. Информацию, передающеюся с первым и вторым типами сообщений вы можете увидеть в Notification Center — внутри т.н. “шторки”. Badges (рус. значок, символ) — рядом с иконкой приложения появляется цифра или специальное изображение.

В Windows Phone 8 также есть три варианта push-уведомлений: Toast (рус. тост) — сообщение показывается в верхней части экрана на протяжении 10 секунд. Естественно, это сообщение кликабельно. Tile (рус. плитка) — отображаются в виде чисел, выводимых поверх значка приложения на плитке (Live Tile). Raw (рус. грубый) — для передачи произвольной информации внутрь приложения. Предполагается, что такой тип пушей используется для игровых приложений.

С Android все немного интереснее. В официальном мануале для разработчиков написано:

It does not provide any built-in user interface or other handling for message data. GCM simply passes raw message data received straight to the Android application, which has full control of how to handle it. For example, the application might post a notification, display a custom user interface, or silently sync data.

По-русски: в ОС Android нет никакой встроенной системы для прямого отображения пользователю push-уведомлений. Все данные «пушатся» исключительно в приложение, и передаются в совершенно произвольной форме, как и raw-уведомления в WP8. Приложение же, после получения информации, может, например, выдать стандартное для андроид-систем уведомление, которое отобразится в верхней части экрана и в “шторке”. Или же может появится баннер, подобный таковым в iOS. Однако, учитывая открытость Андроида и исключительную гибкость этой системы, уведомления после получения push могут выводиться, в принципе, в любой форме. Например, одним из самых самых невинных способов взаимодействия с пользователем может быть немедленное открытие окна приложения со всей необходимой промо-информацией.

Браузерные push уведомления

С некоторого времени у разработчиков появилась возможность рассылать push-уведомления через браузеры на стационарные компьютеры пользователей: в Google Chrome и Apple Safari. Для отправки данного типа пушей также используются службы GCM и APNs. С технической точки зрения, браузерные push-уведомления отличаются от мобильных только тем, что в Chrome и Safari отправителем уведомления является сайт. Пользователи получают push-уведомления в виде небольших сообщений, которые появляются поверх всех окон в углу экрана сразу по получении.

Push уведомление в Chrome на MacOS

Для вашего приложения или сайта

У каждого из разработчиков мобильных ОС есть свой собственный подход к технической реализации отправки push уведомлений на устройства. Сервисы, которые обеспечивают возможности push-нотификаций, были перечислены в начале статьи: GCM, APNS и MPNS. Однако очевидно, что для работы с ними нужно также использовать еще и внешний сервер — для отправки на эти сервисы удаленных запросов. Учитывая то, что обеспечение легкой жизни разработчиков не является приоритетной задачей ни для одной из компаний-авторов ОС, каждый из вышеперечисленных сервисов функционирует очень по-своему. Для отправки уведомлений на разные платформы нужно соблюсти немало всяческих требований, и для каждой платформы — своих. Именно поэтому в сети существует много сервисов, предоставляющих удобный интерфейс для реализации push-уведомлений в приложения и на сайтах своих клиентов.

#android #apple #ios #microsoft #mobile #os #push #service #trending #what is

автор: Eugene / 1 комментарий 128171

Вывод звука через WASAPI

Если под WASAPI звуковой интерфейс не поддерживает автомата опорной частоты, то частота семплирования в Windows должна совпадать с частотой дискретизации музыкального файла, иначе будет ошибка при воспроизведении. Дополнительно надо учесть, что частота воспроизведения музыкального файла должна поддерживаться звуковым устройством. Например, если максимальная поддерживаемая частота у ЦАП равна 96 кГц, то файл с частотой дискретизации в 192 кГц напрямую воспроизводится не будет. Для таких файлов необходимо использовать принудительный ресемплинг.

107

Разрядность сигнала необходимо выбирать в соответствии с разрядностью драйвера, обычно это 24 бит. Некоторые устройства не будут работать, если будет выбрана неверная разрядность, например Audiolab M-DAC понимает только 24 бит. Если есть поддержка как 16, так и 24 бит – лучше выбрать 24 бит.

Для ЦАП без поддержки 24 бит, или мультибитов, где микросхема ЦАП физически поддерживает только 16 бит, на вывод надо ставить 16 бит с активированным диттером при воспрозведении звуковых файлов с разрядностью выше 16 бит.

Вопрос-ответ

Это происходит от того что Ваша система не успевает обрабатывать поток данных, либо при использовании мультимедийного (непрофессионального) звукового интерфейса

Читайте также:  Для чего нужен диффузор для кальяна

Как правило для того, чтобы это устранить, надо изменить параметр Latency (задержку) в сторону увеличения, либо сменить тип драйвера (об этом ниже)

Latency (задержка): Мы рекомендуем начать со значения примерно в 20 миллисекунд, затем менять это значение в сторону увеличения или уменьшения в зависимости от обстоятельств. (При сильном увеличении этого параметра может появиться «выпадание» отдельных нот.)

Для начала надо выбрать режим аудио драйвера. Это делается в меню

Sonar 8.5 : Options| Audio | Advanced

Sonar X1+ : Edit| Preferences | Audio — Playback And Recording

(При использовании версии ниже Sonar X1 может потребоваться перезагрузка программы)

Производитель рекомендует выбирать подходящий режим в последовательности WDM/KS—>ASIO—>MME(32-bit)

WDM/KS и ASIO режимы — равнозначны

При использовании интегрированных (встроенных в материнскую плату или ноутбук) звуковых интерфесов стоит начать с MME(32-bit), затем можно попробовать установить универсальный ASIO драйвер ASIO4All https://asio4all.com/

>>ЗДЕСЬ<< можно ознакомиться с рекомендованными настройками различных аудио интерфейсов

Настройки в случае WDM и MME

Заходим в меню

Sonar 8.5 : Options | Audio | General

Sonar X1+ : Edit| Preferences | Audio — Driver Settings

и меняем значение Buffers in playback queue и Buffer Size. Слушаем результаты и регулируем параметры.

faq_audiooptions02

Настройки в случае ASIO

Заходим в меню

Sonar 8.5 : Options | Audio | General

Sonar X1+ : Edit| Preferences | Audio — Driver Settings

и меняем значение Buffer Size в ASIO Panel Вашего аудио интерфейса. 20 миллисекунд соответствует примерно 1024 сэмплов (на частоте 44100Гц) Слушаем результаты и регулируем параметр. (При использовании версии ниже Sonar X1 может потребоваться перезагрузка программы)

faq_audiooptions03

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

Sonar 8.5 : Options| Audio | Advanced

Sonar X1+ : Edit| Preferences | Audio — Playback And Recording

и меняем параметр Режима драйвера на значение “MME 32bit” (или активируйте функцию “Always use MME interface, even when WDM drivers are available»). Перезапускаем программу если у Вас версия Sonar 7 и ниже, и пробуем снова. Настройки приведены выше

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

Вывод звука через ASIO

Перед выбором ASIO возможно нужно будет сделать дополнительные действия, а именно сконфигурировать настройки. Это актуально для профессиональных устройств, где ASIO представлено большим количеством каналов.

97

По умолчанию foobar2000 показывает доступные драйвера ASIO. Что бы ими можно было воспользоваться, надо создать дополнительную конфигурацию через кнопку «Add New».

76

Здесь задается название и выбирается драйвер устройства.

86

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

Вот и все, наслаждайтесь музыкой!

Этот материал был сделан мной пару лет назад для сайта Audio4You. Сейчас этот сайт прекратил свое существование, но сам материал не утратил своей актуальности.

Album Player (APlayer)

Album Player 2.3 (APlayer) предназначен для составления и прослушивания сборников музыкальных альбомов на жестком диске или на CD/DVD. Плеер воспроизводит основные типы аудиофайлов, для которых существуют plug-in модули в формате программы Winamp (MP3, APE, FLAC, Audio-CD и т.д.). При формировании плейлистов для образов дисков используется информация из.cue файлов.

В программе реализован поддерживаемый некоторыми плагинами режим прямого вывода звукового потока из декодера звукового формата в выходное устройство. Отсутствие промежуточной обработки и микширования обеспечивает наиболее точное воспроизведение звука.

Кто-нибудь использовал этот плеер? Автор утверждает, что данный плеер звучит лучше чем foobar. Плеер можно взять на официальном сайте: https://vv.uka.ru/aplayer.html

Re: Album Player (APlayer)

О автор плеера неожиданно появился =) Спасибо за плеер, он меня зацепил минимализмом и тем что mp3 воспроизводит с моим ЦАПом адекватно. Foobar почему-то конвертирует все mp3 в 24 бита или 32 бита? Хотя mp3 редко слушаю. Пока не удалось завести поток радио из интернета в формате mp3. Радио должно работать или нет? Я лично по звуку особых различий не услышал, хотя пока особо не прислушивался. На ixbt один человек писал, про то чтобы плеер умел в системный трей прятаться и оттуда писать сообщения о проигрывании текущего файла. Удобная функция, хотелось бы чтобы она появилась в вашем плеере.

Re: Album Player (APlayer)

Вы не там искали и не туда направили свои силы. Если Вы решили, что термином «пионерская подделка» я хотел унизить Ваши программистские способности, то зря. Исходного кода я не видел, комментировать тут нечего. Но у Вашего плеера будущего нет. Завтра в жизни появятся другие приоритеты, выйдет новая версия ОС и т.п., и Вам просто некогда будет заниматься пилением кода. Другой пример — AIMP. Хорош он или плох, но это тоже поделка, которая держится на энтузиазме одного человека. С другой стороны есть продукты типа Audacious — вот у них будущее есть хотя бы потому что исходники общедоступны и любой может присоединиться к целой бригаде разработчиков.

screenshot112

315

119

214

Изменение стандартного звука а push-уведомлении

В версии Берлин есть свои особенности. 1. Берём берлиновские java-исходники: C:Program Files (x86)EmbarcaderoStudio18.0source
tlandroiddexjavafmxsrc Далее в файле NotificationPublisher.java в buildNotification правим код, чтобы использовался переданный параметр Sound (если передан):

if (msgSound == «») { //если не передан, используем стандартный звук уведомлений mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); } else { mBuilder.setSound(Uri.parse(«android.resource://» + this.mContext.getPackageName() + «/raw/» + msgSound)); }

Подключаете класс import android.net.Uri; Прокидываете параметр String msgSound выше до publishGCM, а в publishGCM нужно получить из бандла параметр Sound по аналогии с другими параметрами (см. приложенный файл NotificationPublisher.java). Можете так же прописать mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(msgText)); для MultiLine сообщений и сразу сделать обработку параметра icon для использования в пушах иконок отличных от иконки приложения. 2. После того как Вы воссоздали структуру нужного пакета (в java иерархия классов определяется вложенностью папок) в нужном каталоге и внесли необходимые изменения в исходники, необходимо откомпилировать измененные классы, добавить их в исходный пакет (fmx.jar) и сформировать файл classes.dex (cм. приложенный файл install.bat):

@echo off setlocal if x%ANDROID_SDK% == x set ANDROID_SDK=»C:UsersPublicDocumentsEmbarcaderoStudio18.0PlatformSDKsandroid-sdk-windows» if x%JAVA% == x set JAVA=»C:Program FilesJavajdk1.8.0_60in» set ANDROID_PLATFORM=%ANDROID_SDK%platformsandroid-22 set DX_LIB=%ANDROID_SDK%uild-tools27.0.3lib set EMBO_DEX=»C:Program Files (x86)EmbarcaderoStudio18.0libandroid
eleaseclasses.dex» set FMX_JAR=»C:Program Files (x86)EmbarcaderoStudio18.0libandroid
eleasefmx.jar» set PROJ_DIR=»C:fmx» echo COMPILLING NotificationPublisher.java %JAVA%javac -d «%PROJ_DIR%» «%PROJ_DIR%comembarcadero
tl
otificationsNotificationPublisher.java» -cp «%ANDROID_PLATFORM%android.jar»;»C:Program Files (x86)EmbarcaderoStudio18.0libandroiddebugandroid-support-v4.jar» pause echo COPY ORIGINAL fmx.jar copy %FMX_JAR% %PROJ_DIR%fmx.jar» echo UPDATE FILE NotificationPublisher.class %JAVA%jar uf «fmx.jar» comembarcadero
tl
otificationsNotificationPublisher.class echo CONVERTING FROM jar TO dex call %DX_LIB%dx.jar —dex —verbose —output=%PROJ_DIR%outputdex est_classes.dex —positions=lines %PROJ_DIR%fmx.jar echo MERGING dex FILES mkdir outputdex 2> nul java -cp %DX_LIB%dx.jar com.android.dx.merge.DexMerger %PROJ_DIR%outputdexclasses.dex %PROJ_DIR%outputdex est_classes.dex %EMBO_DEX% del outputdex est_classes.dex echo Now we have the end result, which is outputdexclasses.dex pause :Exit endlocal

Поправьте PROJ_DIR на свой каталог, в котором всё лежит (у меня в C:fmx), а так же проверьте правильность остальных путей. 3. После того как Вы получили новый пакет fmx.jar, а так же файл classes.dex, оба файла необходимо скопировать в каталог со своим Delphi-проектом. 4. Добавьте новый файл classes.dex в Deployment и отключите старый файл classes.dex; 5. У нового файла classes.dex пропишите Remote Path как у старого файла (classes); 6. Добавьте звуковой(ые) файл(ы) для уведомлений в Deployment и пропишите Remote Path: res
aw На этом подготовка IDE завершена. Что-либо отключать в IDE в разделе Libraries (напр. fmx.dex.jar) не требуется. Добавлять так же ничего не требуется. Если Вы ранее подключали свой fmx.dex.jar, то удалите его и включите стандартный. 7. При отправке Push с сервера параметр Sound передавать не в Notification!, а в Data: $fields[‘data’] = array(‘body’ => $text, ‘title’ => $title, ‘sound’ => ‘neworder’); Имя звукового файла указывается без расширения.

fmx.zip
Отредактировал 9 мая, 2020 [email protected] Поправил орфографические ошибки

Re: Album Player (APlayer)

Вы всё-таки излишне драматизируете ситуацию с моим плеером во всех отношениях. Начиная с долгожительства и заканчивая сложностью сопровождения. Я написал его 12 лет назад (и тогда он был уже выложен в интернет-каталогах под названием MP3 Album Player), в феврале этого года вытащил, адаптировал к lossless, и многих порадовал результатом, который в итоге получился. Так что, с долгожительством всё в порядке. Что касается сложности сопровождения — плеер просто сводит по стандартному программному интерфейсу стандартные программные компоненты наиболее коротким путём, которого избегают авторы всех остальных популярных плееров. Никакой концептуальной сложности, требующий напряженной, в поте лица, работы по сопровождению и развитию, в моём решении нет. Наоборот, всё слишком просто. Только никто больше так просто не делает, а для чистого звука нужно именно это.

Оцените статью
Добавить комментарий