Einzelnen Beitrag anzeigen

ratmalwer

Registriert seit: 30. Nov 2020
15 Beiträge
 
#1

upnp Fehler 80040365 bei SEEK auf Marantz NA6005

  Alt 2. Mai 2023, 00:37
Ich schreibe einen Mediaplayer in Delphi, der meine MP3s von einem NAS-Server auf meinen Mediarendererer spielt.
Das funktioniert ziemlich gut, aber ich habe ein Problem, dass der Seek-Befehl auf jedem System funktioniert, aber nicht auf meinem Marantz NA6005!

Ich habe getestet:

Medion-NAS via MyApplication auf verschiedene Renderer (Mobile:bubbleupnpPlayer, PC:mediamonkeyPlayer, Sony Bravia TV und Marantz NA6005)
da kann ich:
-Spielen
-Stoppen
-Pause
-Unpause
-Suchen (außer auf Marantz dort bekomme ich den Fehler: OLE-Fehler 80040365)

Dasselbe auf QNAP mit Twonky über MyApplication zu verschiedenen Renderern (Mobile:bubbleupnpPlayer, PC:mediamonkeyPlayer, Sony Bravia TV und Marantz NA6005)
da kann ich:
-Spielen
-Stoppen
-Pause
-Unpause
-Suchen (außer auf Marantz da bekomme ich den Fehler OLE-Fehler: 80040365)

Hier einige Codeschnipsel (der erste funktioniert auf allen Geräten, der zweite erzeugt den Fehler auf Marantz):

Code:
procedure TAVTransportService.Play;
VAR ovIn,ovOut : OleVariant;
begin
   ovIn := VarArrayCreate([0, 1], varVariant);
   ovIn[0]:= 0;
   ovIn[1]:= '1';
   ovOut := null ;
   try
     AVTransportService.InvokeAction('Play',ovIn,ovOut);
     Log.Add('Play: OK');
     FStateOK:=true;
   except
     Log.Add('Error in Play');
     FStateOK:=false;
   end;
end;
Code:
function TAVTransportService.SetPosition(position:string):boolean;
VAR ovIn,ovOut : OleVariant;
begin
  result:=false;
  if isPaused then Play;
  if not IsPlaying then exit;
  ovIn:=VarArrayCreate([0, 2], varVariant);
  ovin[0]:=0;
  ovin[1]:='REL_TIME';
  ovin[2]:=position; //eg: '00:01:30'
  ovOut:=null;
  try
    AVTransportService.InvokeAction('Seek',ovIn,ovOut);   //here the error occurs
    result:=true;
    TUpnpDMC.Log.Add('Seek ok');
  except
    on e: Exception do TUpnpDMC.Log.Add('Seek failed:' + E.message);
  end;
end;
Inzwischen habe ich alle möglichen und unmöglichen Kombinationen ausprobiert, um diesen Fehler zu umgehen. Ich habe den Playstate mit is ok (Playing) und so weiter überwacht.

Nach einer Woche Lesen im Netz bin ich mit den Nerven am Ende.
Hatte jemand das gleiche Problem und eine mögliche Lösung oder einen Workaround zB. ein alternativer Befehl?
Hilfe dringend gesucht.
  Mit Zitat antworten Zitat