Alex7wrt
Пользователи-
Постов
508 -
Зарегистрирован
-
Посещение
-
Победитель дней
31
Весь контент Alex7wrt
-
В некоторых приложениях под Android, в частности ES проводник, есть возможность быстрой оценки приложения, когда не выходя из него, без перехода на Google Play, можно выбрать от 1 до 5 звезд. Можно ли это организовать с помощью FMX?
-
Подозреваю, что это связано с тем, что картинка размером 1317*66, а должна быть 1320*66 (20*66=1320). Проверил свою серию изображений в вашей программе, где размеры совпадают - воспроизвелось нормально.
-
Снова возвращаюсь к этому вопросу. Так как программу пишу под Windows, то для реализации подходит и VCL. Хотя в FMX есть многие плюшки, к которым уже привык. В FMX пробовал через DirectShow - захватом кадра из видео и сохранением его в Bitmap для последующего отображения на другом приемнике. Но здесь проблема в низкой производительности, поскольку сохранение кадра происходит в VCL.Bitmap, конвертация которого в FMX.Bitmap требует много ресурсов (с учетом необходимости сохранить частоту кадров): var bSize: integer; pVideoHeader: TVideoInfoHeader; MediaType: TAMMediaType; Buffer: Pointer; tmp: array of byte; FMXBMP: TBitmap; datas: TBitmapData; begin Result := E_FAIL; if FSampleGrabber = NIL then EXIT; Result := FSampleGrabber.GetCurrentBuffer(bSize, NIL); if (bSize <= 0) or FAILED(Result) then EXIT; try SetLength(tmp, bSize); try FSampleGrabber.GetCurrentBuffer(bSize, @tmp[0]); fmxbmp:=tbitmap.Create(640,480); fmxbmp.Map(TMapAccess.Write,datas); copymemory(datas.Data,pointer(tmp),bSize); fmxbmp.Unmap(datas); image1.Bitmap:=fmxbmp; except Result := E_FAIL; end; finally SetLength(tmp, 0); FMXBMP.Free; end; Также пробовал в VCL с ActiveX компонентами TVLCPlugin2 и TWindowsMediaPlayer. Они, конечно, хорошо подходят для воспроизведения видео, но выводить на два приемника с их помощью также не получилось. Воспроизведение одного файла двумя экземплярами плеера мне не подходит - нужна четкая синхронизация по паузе, звуку, и т.д. Может кто-нибудь подскажет, с помощью чего это можно сделать? Если есть такой инструмент на VCL, годов переписать программу для него, так как данный момент самый критичный.
-
Поместить TMediaPlayerControl в другую форму, и для этой формы сделать: SetBounds(Screen.Displays[1].Bounds); Это если нужно на весь экран, если нет, то Left:=Screen.Displays[1].Bounds.Left;
-
Если задача сводится к отображению только системы линейных уравнений, то, мне кажется, через отрисовку на канве будет наиболее просто. 1. Создать с помощью TPath векторный шаблон для фигурной скобки слева (если ее вообще нужно отрисовывать). Что-то типа: стандартные размеры для концов и центра + растягиваемые прямые линии, длина которых зависит от количества уравнений и размера шрифта. 2. Отображение самих уравнений. Верхний ряд напротив верхнего конца фигурной скобки, нижний - нижнего, промежуточные - с равным интервалом между ними. Если возьметесь и сделаете, то потом будет значительно проще и у вас будет собственный инструмент, который сможете корректировать в случае чего - например, добавлять степени, дробь, корни и т.д. P.S. У меня был когда-то вопрос об отображении степеней. В итоге сделал через канву.
-
Полностью пустой новый проект. При простом добавлении на форму TBannerAD наблюдается описанная выше проблема. Приложение открывается, экран поворачивается нормально сколько угодно раз. Но стоит свернуть приложение, повернуть экран в другую ориентацию, и снова запустить, как приложение виснет. Среда 10.1. В настройках проекта включен AdmobService. Template манифеста <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%"> <%application-meta-data%> <%services%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <%receivers%> </application> </manifest> <!-- END_INCLUDE(manifest) --> Не понятно, в чем причина зависаний - стоит удалить компонент tBannerAD с формы, как все становится нормальным.
-
Да, об этом. Уже разобрался. Сделал через bCancel.OnClick. Появился еще один вопрос - клавиатура в альбомной ориентации перекрывает кнопки ОК и Отмена. Есть ли возможность поместить диалог выше? UPD: Делаю через свойство TMyInputQuery.Top. Но пока не выходит...
-
Очень полезный компонент. Большое спасибо! Реализована ли здесь обработка нажатия клавиши "Отмена" касательно TMyInputQuery?
-
Можно попробовать события жизненного цикла формы http://delphifmandroid.blogspot.com/2013/10/blog-post.html
-
Может быть попробовать оптимизировать потребление RAM приложением? Тогда увеличится вероятность остаться в памяти при сворачивании. К слову на устройстве под управлением Android 6.0 c 3 ГБ памяти ничего не закрывается. Но при небольшом количестве открытых приложений (камера, мессаджеры и прочие стандартные программы), объем свободной памяти уменьшается до 1 ГБ.
-
Присоединяюсь к вопросу. Тоже интересует, как корректно "убить" приложение во всех возможных случаях закрытия.
-
Спасибо!
-
То есть в теле процедуры TForm.OnFormClose нужно разместить процедуру KillMe из данного модуля?
-
Раньше тоже думал, что из-за повторных запусков и занимался "убиванием" на выходе, пока несколько раз не столкнулся с зависанием приложения сразу после установки из FMX. Поэтому вообще не понятно. А у Вас всегда нормально стартуют с первого раза? И, если не секрет, как Вы организовывали kilprocess?
-
Практически все приложения, написанные под Android, периодически отказываются запускаться. На вскидку приблизительно в 10% случаях. То есть в 90% запускаются нормально, а в 10% - просто не запускаются и все. Если остановить и перезапустить, то скорее всего запустится. Причем это наблюдается в разных приложениях, под различными версиями Android от 4.0 до 6.0. Как раньше было в XE7, так и сейчас в Berlin. Может быть, существуют какие-то общие рекомендации при создании приложений под Android? Я, например, обычно загружаю все ресурсы и произвожу инициализацию всех глобальных параметров в событии OnCreate формы, в главном потоке. Может так нельзя? Вобщем, теряюсь в догадках, что может быть не так.
-
Добрый день. Можно ли средствами FMX осуществлять потоковую трансляцию видео с камеры на сервер - в частности на ютьюб?
-
Не стану спорить. Возможно так и есть. Думаю, стоит добавить в обработчике OnLoad блока такой код procedure TForm1.BannerAd1DidLoad(Sender: TObject); begin BannerAd1.Show; end;
-
Сначала тоже хотел написать это. Но автор поста запускает в тестовом режиме.
-
Добрый день. Вроде бы все у Вас правильно. Попробуйте изменить положение блока на MostBottom или MostTop.
-
Добрый день. Каким образом можно в FMX обработать события OnMouseDown, OonMouseUp, OnClick у заголовка формы?
-
Да, в VLC это было просто. Спасибо, что откликнулись!
-
Ошибка при задании координат формы
Alex7wrt ответил Alex7wrt вопрос в Перемещение и позиционирование
Точно! )) Большое спасибо всем!