RapsodRF
-
Постов
23 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные RapsodRF
-
-
Привет друзья!
Помогите решить этот вопрос,
Нужно прикрутить к приложению синтезатор речи.
Если кто-то уже проделывал это, буду очень рад вашей помощи!
Заранее спасибо!
P.S. язык C++
-
17 часов назад, Сысоев Максим сказал:
Полезная ссылка. Спасибо!
Ярослав, частично подходит TThread, спасибо!
А что на счёт критических секций (CRITICAL_SECTION)?
Вы их используете в TThread?
-
Нет, всё так же печально((
-
Всем привет!
Кто уже работал с потоками в Android, поделитесь опытом.
Нужно создать POSIX поток.
Под виндой это делается просто:
HANDLE hThr; unsigned long uThrID; //метод который запускается в новом потоке void threadMethod(void *pParams) { //... код ... } //Вызов метода в новом потоке hThr = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) threadMethod, NULL, CREATE_SUSPENDED, &uThrID); SetThreadPriority(hThr, THREAD_PRIORITY_HIGHEST); ResumeThread(hThr);
А вот на Андроиде как такое организовать?
Заранее благодарю за помощь!
-
Найдено решение. Может кому-то пригодится.
Вот тут представлены четыре разных алгоритма размытия http://blog.ivank.net/fastest-gaussian-blur.html
Работает быстро и утечки теперь не наблюдается, то что и надо было сделать))
Так что всем спасибо!
Пользуйтесь! ;-)
-
В том-то и дело, что под виндой всё корректно, а под андроидом всё валится.
Может у кого-то есть какие-то идеи, как избавиться от утечки памяти при использовании эффекта?
-
Значение размытия: 5
Я устанавливал 0,3 и тоже через некоторое время программа съедала более 700 МБ оперативной памяти.
-
4 часа назад, ZuBy сказал:
Через какое время у вас заканчивается память? И какой девайс имеется под рукой?
Приблизительно через 1/2 минуты
Тестил на двух девайсах:
1. Alcatel IdolX RAM 2 GB (Android 4.22)
2. Lenovo 3000 RAM 1 GB
-
4 часа назад, ZuBy сказал:
у меня не установлен билдер, но попробуйте сделать так
BlurEffect1->Enabled = false; if OnSwitch then begin switchOn = false; Image3->Bitmap->Assign(Image1->Bitmap); Image4->Bitmap->Assign(Image1->Bitmap); end else begin switchOn = true; Image3->Bitmap->Assign(Image2->Bitmap); Image4->Bitmap->Assign(Image2->Bitmap); end; BlurEffect1->Enabled = true;
К сожалению это не помогло.
Я ещё пробовал динамически создавать эффект и удалять его после использования. тоже не помогло.
Возможно вы знаете как можно программно очистить память (кэш)???
Или может быть есть ещё какие-то варианты?
Очень нужна ваша помощь!
-
Здравствуйте ZuBy!
Спасибо за то что решились помочь мне!
Дело в том, что я не могу отказаться от использование эффекта
Я решил описать проблему более детально:
Допустим есть форма, на неё бросаем Image. К Image применяем эффект BlurEffect.
В процессе работы программы в Image загружаются разные картинки.
Проблема состоит в том, что на устройстве под управлением ОС Android, программа потребляет всё больше и больше оперативной памяти. После чего программа вылетает.
Вот я собрал тестовый проект, чтобы вы могли сами протестировать и воспроизвести данную проблему утечки памяти
#include <fmx.h> #pragma hdrstop #include "Unit1.h" // --------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.fmx" TForm1 *Form1; // --------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } // --------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { if (switchOn) { switchOn = false; Image3->Bitmap = Image1->Bitmap; Image4->Bitmap = Image1->Bitmap; } else { switchOn = true; Image3->Bitmap = Image2->Bitmap; Image4->Bitmap = Image2->Bitmap; } } // --------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if (Timer1->Enabled) { Timer1->Enabled = false; } else { Timer1->Enabled = true; } } // ---------------------------------------------------------------------------
Буду благодарен за любую помощь!
-
Привет друзья!
Помогите разобраться со сложившийся проблемой.
К компоненту TImage применил эффект BlurEffect. После чего происходит циклическая смена изображений в TImage. И было замечено колоссальная утечка памяти.
Без эффекта, утечки не наблюдается. Возможно при каждой смене изображения нужно вручную очищать кэш?
Платформа Android
-
Да, хорошая библиотека BASS, использовал её в Windows приложениях. Но под Android ради воспроизведения нескольких звуков, нету смысла тащить. Но всё же спасибо!
Кстати, может кому-то понадобиться тело "таймера-абракадабры" вот представляю работающий код. Но учтите, что задержка между треками относительно большая, поскольку трек постоянно перезаписывается в память.
if (MediaPlayer->State != TMediaState::Playing) { MediaPlayer->Play(); }
Всем спасибо за помощь!
Как вариант, можно ещё попробовать не повторно перезаписывать трек, а по окончании воспроизведения, перемотать на начало, и запустить.
-
Может есть какое-то событие, когда завершается воспроизведение звука?
Неужели, кроме этой абракадабры с таймером ничего нет?(
-
Привет друзья!
Нужна ваша помощь! Подскажите как правильно можно зациклить воспроизведение звука?
Есть ли какой-то параметр в TMediaPlayer, чтобы он автоматически зацикливал воспроизведение?
А то способ с таймером, который постоянно проверяет состояние плеера - это очень и очень не правильно...
Заранее благодарю за любую помощь!
-
Интересует этот же вопрос. Как в FMX задать горячие клавиши? И будут ли они работать на MAC OS?
-
Посоветуйте пожалуйста, компонент для записи видео. Возможно есть платные компоненты для записи видео (со звуком)?
Под Андроид.
-
Всем привет!
Подскажите, пожалуйста, как средствами FMX можно записать видео со звуком?
Очень нужно! Заранее благодарю!
-
Здравствуйте!
Подскажите как в FMX перевести приложение в фоновый режим?
В VCL это делается так:
ShowWindow(Application->Handle, SW_HIDE); Visible = false;
-
Всем привет!
Подскажите, как можно отключить затухание экрана, когда программа запущена?
На подобии того, когда мы смотрим видео, то экран не тухнет.
-
-
Всем привет!
Столкнулся с проблемой, нужно создать онлайн-чат с иконками переписчиков.
На подобии как сделали в Viber
Подскажите как правильно это организовать и какие компоненты использовать?
Желательно не использовать чужие компоненты, только FMX.
Заранее благодарю!
-
Здравствуйте!
Темы "Работа со звуком" ещё нету, поэтому пишу тут.
Подскажите, пожалуйста, как можно организовать запись разговора? Не снятие звука с микрофона, а запись полного разговора?
За любую информацию буду очень благодарен!
Синтез речи (text-to-speech)
в Android
Опубликовано
Спасибо за полезную ссылку! Но к сожалению не удалось запустить этот код