Page 2 of 2 FirstFirst 1 2
Results 16 to 25 of 25

Thread: MediaPlayer problemen in XE10.3

  1. #16
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Misschien leerzaam om een artikel als dit te lezen?

    (Oh en installeer toch de Community Edition van Delphi en gooi de Architect Trial weg...)
    TMemoryLeak.Create(Nil);

  2. #17
    Quote Originally Posted by VideoRipper View Post
    Misschien leerzaam om een artikel als dit te lezen?
    Dat gaat je met FMX niet verder helpen (is alleen voor VCL). En op Android schiet je er al helemaal niets mee op.

    (Oh en installeer toch de Community Edition van Delphi en gooi de Architect Trial weg...)
    Hij had problemen om de trial (en hack) compleet weg te halen. En als er iets achterblijft dan ziet Delphi de oude licentie en gaat vrolijk de architect installeren. Die keuze voor community heb je dan niet als je niet alles goed cleaned. Vandaar mijn advies om dan ook Windows helemaal opnieuw te installeren (maar dan ook echt clean en geen semi-install).

  3. #18
    Als test ben ik een nieuw project begonnen.
    -Plaats een MediaPlayer op het form (Palette > Additional > TMediaPlayer)
    -Plaats een Button
    -Plaats 3 Labels
    -Plaats 1 Timer

    Bij label 1 krijg ik de vreemde waardes (ook wel eens negatief).
    En bij de Labels 2 en 3 krijg ik: 00:00:00
    De MP3 wordt netjes afgespeeld, en de tekst in de Labels 2 en 3 (00:00:00) veranderen niet !

    Ook als ik de variable declareer als uint64, is het probleem er nog steeds:
    CurrentMin, CurrentSec, DurationMin, DurationSec: uint64;

    Ik heb geen idee wat ik nog kan proberen, en waarom het niet werkt in XE10.3.2.


    Code:
    unit Unit1;
    
    interface
    
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
      FMX.Controls.Presentation, FMX.StdCtrls, FMX.Media;
    
    type
      TForm1 = class(TForm)
        MediaPlayer1: TMediaPlayer;
        Button1: TButton;
        Timer1: TTimer;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        procedure Button1Click(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
      CurrentMin, CurrentSec, DurationMin, DurationSec: integer;
      Test: uint64;
    
    
    implementation
    
    {$R *.fmx}
    
    uses
      System.IOUtils;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     MediaPlayer1.FileName := 'path/Track.mp3';
     MediaPlayer1.Volume := 100;
     MediaPlayer1.Play;
    end;
    
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
     CurrentMin := MediaPlayer1.CurrentTime div 1000 div 60;
     CurrentSec := MediaPlayer1.CurrentTime div 1000 mod 60;
     DurationMin := MediaPlayer1.Duration div 1000 div 60;
     DurationSec := MediaPlayer1.Duration div 1000 mod 60;
     Label1.Text := Format('%2.2d:%2.2d', [CurrentMin, CurrentSec]) + ' / ' + Format('%2.2d:%2.2d', [DurationMin, DurationSec]);
    
     Label2.Text := MediaPlayer1.CurrentTime.ToString;
     Label3.Text := MediaPlayer1.Duration.ToString;
    end;
    
    end.
    Last edited by MMSoft; 14-Sep-19 at 08:08.

  4. #19
    Quote Originally Posted by MMSoft View Post
    Bij label 1 krijg ik de vreemde waardes (ook wel eens negatief).
    En bij de Labels 2 en 3 krijg ik: 00:00:00
    De MP3 wordt netjes afgespeeld, en de tekst in de Labels 2 en 3 (00:00:00) veranderen niet !
    Dat de .ToString op 00:00:00 blijft staan is logisch (bug). Want ik heb in QC gelezen dat dit een bug is in TMediaPlayer voor Android dat er gedeeld wordt door die MediaScale van 10.000.000 (en die wordt gebruikt in .ToString). Omdat volgens de documentatie de resolutie 100ns zou zijn. Maar schijnbaar is het in Android 1ms.

    Maar dat verklaart niet de rare waardes.
    Zal ook wel een bug zijn (een van de vele).

    https://quality.embarcadero.com/issu...MediaPlayer%22

    Dit is het report over de 1ms ipv 100ns
    https://quality.embarcadero.com/browse/RSP-19678

  5. #20
    Zou het mogelijk zijn om de TMediaPlayer van XE10.1 te gebruiken in XE10.3 ?
    Dus is dit een stukje software dat gemakkelijk over te zetten is ?

  6. #21
    In theorie is dat mogelijk maar ik weet niet of je daar aan wilt beginnen.
    Mijn verwachting is dat dit fout gaat in de vertaling naar android.

    Nogmaals. Ik zou het niet doen maar wat je zou kunnen doen is het volgende:

    FMX.Media.TMediaPlayer kopieren naar een eigen unit.
    En dan ook echt alleen de TMediaPlayer.
    Dit gaat natuurlijk niet compileren dus ga je kijken wat de TMediaPlayer nodig heeft om wel te kunnen compileren.
    Als je spullen uit een andere unit nodig hebt deze ook overnemen naar dezelfde unit, of een andere unit.

    Het is belangrijk dat je dan wel een aparte namespace gebruikt zodat niet per ongeluk FMX bestanden gebruikt worden uit de nieuwe versie.
    Na een tijdje compileert de boel en heb je dus de 10.2 (of 10.1) variant van TMediaPlayer.

    Maar goed... Als de fout inderdaad in de vertaalslag naar android zit van de 10.3 compiler dan gaat het je op deze manier ook niet lukken en is je enige alternatief om je app te deployen met de vorige Delphi versie.

  7. #22
    Tja dat wordt wel erg omslachtig.
    Ik gebruik voorlopig de oude versie maar.

    Bedankt !

  8. #23
    Ik gebruik nu de Community Edition van Delphi, versie 10.3.3, maar helaas is dit probleem er nog steeds.
    De TMediaPlayer speelt dus netjes de muziek af, maar de weergegeven tijd springt alle kanten op.
    Bij XE 10.1, werkte het goed, en nu niet meer.

    Wie kan hier iets over vertellen of heeft de oplossing ?

  9. #24
    Quote Originally Posted by MMSoft View Post
    Wie kan hier iets over vertellen of heeft de oplossing ?
    Ik kan je verder niet helpen met de oplossing maar in de linkjes die ik reeds gegeven heb staan wel diverse bugfixes.

    Quote Originally Posted by rvk View Post
    Maar je kunt dus ook die oude versie blijven gebruiken. Feit is gewoon dat het bij Embarcadero eeuwen duurt voordat dit soort dingen opgelost wordt (als het al opgelost wordt).

  10. #25
    Ik zou verwachten dat "FMX.Media.Android.pas" gebruikt wordt bij een Android project (getest met 32 en ook 64 bits)
    Maar vreemd genoeg wordt telkens "FMX.Media.pas" gebruikt, en die werkt dus niet goed bij dit project.

    Is het mogelijk om toch "FMX.Media.Android.pas" te gebruiken, als test ?

Page 2 of 2 FirstFirst 1 2

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •