Komischerweise hat die FMX TMediaplayer-Klasse ein Problem mit Streams. Neben dem offensichtlichen Problem in
class function TMediaCodecManager.CreateFromFile(const AFileName: string): TMedia; (FMX.Media.Pas) braucht man bei IOS nur:
im Konstruktor constructor TAVMedia.Create(const AFileName: string); folgendes abzuändern:
if FileExists(AFileName) then
URL := TNSUrl.Wrap(TNSUrl.OCClass.fileURLWithPath(NSStr(A bsoluteFileName)))
else
URL := TNSUrl.Wrap(TNSUrl.OCClass.URLWithString(NSStr(Abs oluteFileName)));
FPlayerItem := TAVPlayerItem.Wrap
(TAVPlayerItem.OCClass.playerItemWithURL(
URL));
und in procedure TAVMedia.UpdateMediaFromControl; folgende zu ersetzen:
Form := TCommonCustomForm(Control.Root.GetObject);
if FPlayerItem.status=AVPlayerItemStatusReadyToPlay then
P := GetVideoSize
else
P := Control.AbsoluteRect.Size;
Letzteres ist notwendig, da Streams ja noch geladen werden müssen und die Videomaße zu dem Zeitpunkt nicht bekannt sind. Leider gibt es aber noch ein Problem mit dem Wechsel zwischen Landscape und Portrait Modus. Da erfolgt keine Anpassung des Videos an die Anzeige.
Christian