![]() |
IdHttpServer
Hallo DP,
Ich habe eine Delphi-Anwendung, die mithilfe des TVideograbbers (Datastead) ein Video abspielt. Diese Anwendung steuere ich mithilfe einer iPhone-App. Dazu habe ich ein Datenmodul mit einem IdHttpServer hinzugefügt und folgenden OnCommandGet-EventHandler:
Delphi-Quellcode:
In der App schicke ich dann z.B. so einen Request:
procedure TdmNetwork.httpServerCommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); var jo : IJSONObject; ctx : TRttiContext; typ : TRttiType; m : TRttiMethod; param : TValue; begin jo := TJSON.NewObject(ARequestInfo.Params.Values['p']); param := TValue.From<IJSONObject>(jo); ctx := TRttiContext.Create; try typ := ctx.GetType(TMyVideoPlayer); m := typ.GetMethod(jo.GetString('Command')); AResponseInfo.ContentText := m.Invoke(fVideoPlayer,[param]).AsString; finally ctx.Free; end; end;
Code:
funktionert soweit prima.
- (void) play
{ NSURL *url = [NSURL URLWithString:@"http://ip.vom.rechner/?p={"Command":"Play"}"]; NSString *response = [NSString stringWithContentsOfURL:url]; } Allerdings wollte ich jetzt eine Trackbar zur Fortschrittsanzeige in der App haben. Dazu habe ich in der App einen Thread erstellt, der mir alle 900ms die aktuelle Position abfragt und dann entsprechend die Value von einem UISlider (iOS-Äquivalent zu TTrackBar) setzt. Ist nicht die schönste Lösung, da hier gepollt wird, aber so komme ich um die Programmierung eines Servers in Objective-C herum. Allerdings habe ich jetzt Ruckler im Video (kaum sichtbar im Bild, aber deutlich hörbare Audioruckler). hier noch die Implementierung von GetPosition:
Delphi-Quellcode:
Der IdHttpServer macht für jede anfrage einen neuen Thread auf, in dem dann OnCommandGet ausgeführt wird, warum kommt es dann zu den rucklern?
function TMyVideoPlayer.GetPosition(jo: IJSONObject): string;
var joResult : IJSONObject; begin joResult := TJSON.NewObject; joResult.Put('Position',fVideoForm.getPosition); result := joResult.ToString; end; PS: Ich weiß, dass das DataSnap für Arme ist, aber ich hab leider nur die Prof. und nicht die Enterprise ;-) |
AW: IdHttpServer
Zitat:
Ich würde das Setzen der Trackbar Position auf dem Formular als ersten Kandidaten weglassen, vielleicht liegt hier der Grund für den Ruckler. |
AW: IdHttpServer
Sorry, hab ich mich falsch ausgedrückt. In der Anwendung gibt es keine TrackBar. In der App gibt es einen UISlider und der wird nur zum anzeigen benutzt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz