Перейти к содержанию
Fire Monkey от А до Я

Dozent

Пользователи
  • Постов

    115
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Сообщения, опубликованные Dozent

  1. Да мне не компоненты нужны. Я вот раньше мог в датасете хранить данные полученые из базы через FireDac или ADO не важно. ХОчу положить отпарсеный результат в какуюто структуру типо датасета... 

    Подойдёт ли сам датасет или же под FMX более удобная структура

  2. Добрый день!

    Прошу помощи.

    Работая с VCL для набора данных использую TDataSet, какой аналог есть в FMX.

     

    Поясню подробнее:

     

    У меня есть сервер на PHP обращаясь к которому я получаю ответ в JSON

    {"field_names":["ID","VNAME","VPASSWORD","RROLE","VDESCRIPTION","VNAMEE","USERROLE"],"data":[[1,"\u0418\u0432\u0430\u043d\u043e\u0432 \u0418.\u0418.","123",1,"\u041f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u044f.","\u0418\u0432\u0430\u043d\u043e\u0432 \u0418.\u0418.","\u041f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c"]]}
    

    Это только по первому пользователю. Их как понимаете мб больше! Хочу результат ответа PHP скрипта засунуть в структуру! В VCL  эту роль хорошо выполняет TDataSet, какой аналог в FMX?

     

     

  3. Добрый день! Разрабатываю некоторое подобие плеера, в котором воспроизводится как картинка так и видео.

    Запускаю видео в нужном мене порядке через MX плеер. ЗАпускается, потом доходит до запуска картинки тоже запускаю, но потом всё ломается) ПОтому что галерея через которую воспроизводилась картинка висит на заднем плане и больше не показывается. Т.е. получается что всё нормально работает до первого показа картинки а потом ппц!

     

    Подскажите плз как убить работающую галерею с картинкой?!

     

  4. Как определить продолжительность видео файла через Актив Менеджер или как-нить по другому?

    Update:

    Тут нашёл: https://sites.google.com/site/mxvpen/api

    duration Added in 1.7.23

    Type: int

    Value: Duration of last played video in milliseconds. This extra will not exist if playback is completed.

    пробую вот так

      procedure VideoDuration;
      begin
        // Intent := TJIntent.JavaClass.init(StringToJString('com.mxtech.videoplayer.ad'));
        // Intent.setPackage(StringToJString('com.mxtech.intent.result.VIEW'));
        Intent.setPackage(StringToJString('com.mxtech.videoplayer.ad.ActivityScreen'));
        iDuration := -1;
        // iDuration := integer(Intent.putExtra(StringToJString('duration'), 0));
        Intent.putExtra(StringToJString('duration'), iDuration);
        // Button2Click(Self);
        Label2.Text := IntToStr(iDuration);
        // extras.getString("paramName");
      end;
    

    и пока чото ни чо не получается) Мб кто может что подсказать?

  5. Здравствуйте!

    Прошу помочь с небольшим затруднением.
    Есть:

    • Список воспроизведения файлов, видео файлы запускаются на андройд устройстве, через MX Плеер.
    • Логика воспроизведения файлов... (не подряд, например 1, 3, 4, 3, 1)

    Я вижу тут два варианта, как-то узнавать продолжительность текущего видео файла и по истечении этого времени запускать следующий в соответствие с алгоритмом, но тут я вижу несколько затыков:

    • Возможно ли определить продолжительность видео файла?
    • Не уверен что Таймер в делфи ровно отсчитает время до следующего запуска, а если неверно, то несколько секунд видео может быть потеряно, а этого допускать никак нельзя!

    Либо если это кончено возможно отслеживать закрытие МХ плеера, что будет свидетельствовать о завершении видео, но тут придётся в милисекундах спамить таймером на проверку рабочего процесса плеера, что тоже не айс и вообще можно ли это?

     

    Либо как-то передать МХ плееру плейлист) Но как?) Возможно ли это?  :)

    Прошу выскажите свои мнения...

  6. Андрей, не это я не вам Абсолютно, а девушке у которой всё работает) А Вам вообще отдельное спасибо за ваш блог!!! Много там нужного и полезно, а с проблемой я справился!!!

    Я по своей невнимательности забыл что вертикальная палка это операция или и почему-то влупил AND

    Всё работает, простите меня за не внимательность....

    procedure TForm1.Play(const sFileName: string);
    var
      PackageName: Jstring;
      ActiveManager: JActivityManager;
      sFile, exe: string;
      Intent: JIntent;
      Data: Jnet_Uri;
    begin
      try
        sFile := sFileName;
        // MX player: https://sites.google.com/site/mxvpen/api
        PackageName := StringToJString('com.mxtech.videoplayer.ad');
        ActiveManager := GetActivityManager();
        ActiveManager.killBackgroundProcesses(PackageName);
        //
        exe := System.IOUtils.TPath.GetExtension(sFile);
        Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
        Data := StrToJURI(sFile);
        Intent.setDataAndType(Data, StringToJString(PWideChar('video/') + exe));
    
        Intent.setPackage(PackageName);
        { Intent.putExtra(StringToJString('end_by'), StringToJString('user'));
          https://github.com/NineWorlds/serenity-android/issues/134
          http://stackoverflow.com/questions/22408413/how-to-stop-android-mx-player-on-back-pressed
        }
    
        Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP or TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK or
          TJIntent.JavaClass.FLAG_ACTIVITY_NO_HISTORY);
        SharedActivity().startActivity(Intent);
      finally
      end;
    end;
    
  7. разрешение стоит, я тут на форуме нашёл одну из ваших тем, где вы добавляете в ActivityManager код какото китайца, мб в этом проблема? 

    Попробую сегодня, ещё раз попрошу, если вас не затруднит соберите тестовый проект запустите видео и убейте его гденить на половине по таймеру...

  8. Я внимательно читаю ваши сообщения и перевёл приведёный вами код на делфи, отличия в нём ни какого только синтаксис другой и  уменя не закрывается предидущий воспроизводимый ролик, значит что то не так, что пока понять не могу, поэтмоу прошу Вас провести такой тест. Разве вам не интересно?

  9. Я не силён в C++ Buildere, но на мой взгляд чото вы делаете не так) 

    void Form2Execute(TEdit *Edit)
    {
     Form2 = new TForm2(Application);
     Form2->ShowModal();
     Edit->Text = Form2->Edit1->Text;
     delete Form2;
    }
    

    Зачем? Разве нельзя написать в первой форме Form2->Show или ShowModal ?

    Да и потом зачем тут delete Form2?

     

    void __fastcall TForm1::Edit1Click(TObject *Sender)
    {
     Form2Execute(Edit1);       // Этот код не вызывается при щелчке на Edit1!!!
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Edit1Enter(TObject *Sender)
    {
     Form2Execute(Edit1);
    }

    Вызов одинаковый, трасирутей, поставте брек поинты в этих процедурах, каков буде трезультат?

  10. Вы уверены что он закрывается? Можно вас попросить собрать тестовый проект. Запустить видео какоенить больше минуты, и чтобы по таймеру после запуска видео секунд через 20 сработало

    сработал ActiveManager.killBackgroundProcesses(PackageName);

    и ни чего больше. Закроется ли видео? У меня не закрываеться, не отрабатывает эта строчка. Буду очень благодарен за тест...

  11. я проект даже смотреть не буду, вы прежде чем такие панические сообщения писать потрасируйте своё приложение.

    Из вашего сообщения и так ясно в чём ошибка

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

     

    После закрытия вторйо формы в эдите опять срабатыает onEnter потому как он опять получает фокус. Да и советую уйти от реализации приложения в кучу форм делайте всё на одной форме... Вызывайте лайаут или ещё какойнить компонент...

  12. Я заметил немного неожиданно поведение. Запускаю 3 видео с интервалом 10 секунд, соответственно видео не успевает закончится, начинает играться следующее. Прикол в том что по окончанию проигрывания 3 начинает проигрываться 2 а затем 1 видео и только потом закрывается плеер. Можете проверить у вас такая же ситуация? Спасибо...

  13. ну хоть и косвено но это относится к воспроизведению видео. Т.е. вы знаете в какое время нужно запустить файл? Или же вы запоминаете длительность текущего ролика относительно настроект в ini файле? И по истечении длительности текущего видео запускаете новое?

  14.  

     

    Ваш совет, то окно ввода данных будет вызываться при занесении данных в "щелкаемое" поле ввода, а этого не должно быть. И почему не работает событие OnClick???

    Событие onEnter срабатывает один раз при получении фокуса, с чего вы взяли, что будет срабатывать каждый раз и какой каждый раз не понятно!

    Почему не срабатывает OnClick мы не знаем, давайте код!!! Трасировку делали?

×
×
  • Создать...