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

mantas

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

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

  • Посещение

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

  1. Цитата

    Кто нибудь может помочь в переводе этого кода на делфи?

    Перевод кода на Delphi:

    procedure TMainForm.PlayVideo(AFileName: String);
    var
    EXE: String;
    PackageName: JString;
    activityManager: JActivityManager;
    Intent: JIntent;
    Data: Jnet_Uri;
    
    begin
      try
    
    	//MX player: https://sites.google.com/site/mxvpen/api
    	PackageName := StringToJString('com.mxtech.videoplayer.ad');
    	activityManager := TJActivityManager.Wrap(TAndroidHelper.Context.getSystemService(TJContext.JavaClass.ACTIVITY_SERVICE));
    	activityManager.killBackgroundProcesses(PackageName);  // <<-- requires entitlement enabled in project settings
    
    	EXE := System.Ioutils.TPath.GetExtension(AFileName);
    	Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
    	Data := StrToJURI('file://' + AFileName);
    	Intent.setDataAndType(Data, StringToJString('video/' + EXE));
    
    	Intent.setPackage(PackageName);
    	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);
      SharedActivity.startActivity(Intent);
    
     except
    //    on E: Exception do ErrorDialog(E.Message, E.HelpContext);
    	 Application.Terminate();
      end;
    end;

    Не забудьте добавить в файл манифеста:

    Цитата

    https://stackoverflow.com/questions/27235913/delphi-launching-external-application-no-activity-found
    Some content of the Manifest file of the application to be launched:

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

     

  2. Столкнулся с такой же проблемой.
    Использую «RAD Studio 10 Seattle».
    Каждый раз, когда у TMediaPlayer задаешь новый FileName, идёт утечка памяти – это баг Firemonkey.

    Скорее всего, ошибка находится в файле «FMX.Media.pas».
    Как исправить эту ошибку? Что и как исправлять в файле «FMX.Media.pas»?
     

    Цитата

    https://quality.embarcadero.com/browse/RSP-12953
    TMediaPlayer's (FileName) function causes a major memory leak

    Type: Bug
    Status: Open
    Priority: Major
    Resolution: Unresolved
    Affects Version/s: 10 Seattle
    Fix Version/s: None
    Component/s: FireMonkey

    Description
    Whenever you add the file (MediaPlayer1.FileName) the Clear command will not remove it from memory, the program will become unstable because of the large memory leaks and crash after adding multiple files.
    How to clear the file after loading it in the MediaPlayer1?

    1 - Create new FireMonkey project
    2 - add two buttons
    Button 1 : MediaPlayer1.FileName:= 'E:\Buddha_Bar.mp3';  Large File
    Button 2 : MediaPlayer1.Clear;

    Thank you
    ray

    Проверил на «RAD Studio 10.2 Tokyo» - проблема утечки памяти тоже присутствует.

    Просто в цикле задаешь новый (или даже тот же самый) TMediaPlayer.FileName, и каждый раз идёт утечка памяти, и очень скоро программа падает из-за недостатка памяти.
    Функция TMediaPlayer.Clear не помогает, ибо память не освобождается.
    Из-за этого бага TMediaPlayer является неработоспособным и TMediaPlayer просто невозможно использовать в реальных проектах.
    Как решить эту проблему?

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