Abfrage was gerade abgespielt wird

  • Ok. Mir lässt sowas dann keine Ruhe :)
    Probier dann morgen das Beispiel hier aus. Damit sollte auch Benutzer/Passwort funktionieren.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Einmal editiert, zuletzt von _Andy_ (31. März 2017 um 02:44)

  • Andy,

    das funktioniert 1 A

    :)

    Ihr kennt das ja mit dem kleinen Finger ;)
    jetzt versuche ich mir noch aus den Streamdetails den Wert "Duration" auszulesen

    habe Streamdetails in den Json String aufgenommen

    Code
    $json = 'http://'.$kodi_user.':'.$kodi_pass.'@'.$kodi_ip.':'.$kodi_port.'/jsonrpc?request={"jsonrpc":"2.0","method":"Player.GetItem","params":{"properties":["title","fanart","thumbnail","streamdetails"],"playerid":1},"id":0}';

    erhalte aber maximal
    $kodi_streamdetails= $data["result"];

    Array als Antwort. (verschieden Versuche)

    Wäre das Sahnehäubchen, aber nicht so wichtig.
    Dennoch eine Riesen Danke an Dich für deine Hilfe.


    Edit:
    Reload war ein guter Tip :)
    <meta http-equiv="refresh" content="10" >

  • Duration ist enthalten:

    Code
    {"id":0,"jsonrpc":"2.0","result":{"item":{"fanart":"image://http%3a%2f%2fimage.tmdb.org%2ft%2fp%2foriginal%2fcM07cnR7msWO5Yxi8HYdwbqzwGn.jpg/","id":309,"label":"Winnetou - Eine neue Welt","streamdetails":{"audio":[{"channels":6,"codec":"dca","language":"ger"}],"subtitle":[],"video":[{"aspect":2.3762381076812744,"codec":"h264","duration":5643,"height":808,"stereomode":"","width":1920}]},"thumbnail":"image://http%3a%2f%2fimage.tmdb.org%2ft%2fp%2foriginal%2f9nTNjk3lG0olNubQa8SUGKE5yY8.jpg/","title":"Winnetou - Eine neue Welt","type":"movie"}}}
  • Jetzt mal ungetestet:

    --------------
    Guides nicht mehr verfügbar wegen Youtube unvermögen guten von schlechten Kodi Videos zu unterscheiden.

  • wenn keine Streamdetails im Json enthalten sind, findet keine "Duration" in der Ausgabe statt

    Code
    {"id":0,"jsonrpc":"2.0","result":{"item":{"fanart":"image://http%3a%2f%2fimage.tmdb.org%2ft%2fp%2foriginal%2fcM07cnR7msWO5Yxi8HYdwbqzwGn.jpg/","id":309,"label":"Winnetou - Eine neue Welt","thumbnail":"image://http%3a%2f%2fimage.tmdb.org%2ft%2fp%2foriginal%2f9nTNjk3lG0olNubQa8SUGKE5yY8.jpg/","title":"Winnetou - Eine neue Welt","type":"movie"}}}
  • Mist, ich muss mal genauer hinschauen. Der decode ergibt noch ein nicht assoziiertes array. Von daher muss man vorher einmal dahin abbiegen, bevor man wieder auf das assoziierte zugreift.

    $kodi_duration = $data["result"]["item"]["streamdetails"]["video"][0]["duration"];

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Nur mal kurz zum Vertsädnis,

    Woher stammt die [0] Und wie erkenne ich das.
    Lässz sich das einfach erklären?

    Ich hatte das in der Form auch versucht, aber natürlich ohne die 0 und habe wohl dadurch keine Ausgabe erhalten.

  • Das hatte ich schon versucht kurz zu erklären. Beim dekodieren der JSON Antwort ergibt sich nach dem ["video"] noch ein Array. Dieses Array ist aber nicht assoziiert. Erkennbar an
    "video":[{"aspect":2.3762381076812744,"codec":"h264","duration":5643,"height":808,"stereomode":"","width":1920}] also explizit an [{"aspect.


    Wenn das Array nicht assoziiert ist, kannst Du nicht mit einem key also z.B. ["video"] darauf zugreifen, sondern nur über den Index. Der erste Teil eines Array beginnt ja mit 0 als Index. Daher die 0.

    Danach befindet sich man wieder in einem Array welches dann aber wieder assoziiert ist. Deswegen kann man dann wieder mittels ["duration"] darauf zugreifen.


    Benötigst Du noch etwas? Falls noch Fragen oder Verbesserungen offen sind, versuche ich gerne die zu lösen.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • hätte alles so schön sein können...

    Bisher jabe ich die Sachen ja alle auf meinem Notbeook ausprobiert, habe dazu einen lokalen MAMP installiert um php code lokal schon ausprobieren zu können.
    Klappt alles und ist auch perfomant.

    Lege ich die php seite auf den Raspi und Versuche den Seitenaufruf dauert das ewig, bestimmt 10 Sekunden bis angezeigt wird was läuft. Egal, ob der Zugriff via Laptop, ipad... :( erfolgt.

    Alle anderen Seiten, welche da bisher hoste, laufen superflott.

    Sollte dieser json Aufruf den Raspi wirklich schon überlasten? Oder liegt das am curl! Dass dieser seine Zeit braucht?

  • Falls Du die Anzeige der Bilder noch aktiviert hast, vermute ich das das so lange dauert. Wenn Du die Bilder schon rausgenommen hast, kann es sein das tatsächlich das dekodieren so lange dauert oder irgend ein Netzwerkprocess dauert lange.

    Falls Du es genauer wissen willst, kann ich zum testen eine Stoppuhr einbauen, die zeigt wie lange jeder Befehl braucht.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Ok. Da ich jetzt nicht weis was Du schon an dem Script umgebaut hast, ist es einfacher nur das Prinzip zu zeigen oder Du kopierst alles was Du gemacht hast einmal hier hin, dann ändere ich das eben selber ab.
    Wenn Du wissen willst wie lange es dauert um den String von kodi zu empfangen, mache folgendes:

    Code
    ///// Start
    $time1 = microtime(true);
    ///// der Befehl der gemessen werden soll //////
    $json_response = GetURLAsString($json);
    ///////////////////////////////////////////
    $time2 = microtime(true);
    echo "time:".($time2 - $time1)."<br>";
    //// Ende


    Also im Prinzip mus Du jede Zeile die Du berechnen lassen willst mit den oben gezeigen Codeblock umschliessen. Dann wird ausgegeben wie lange die Zeile gebraucht hat. Eine Zeile wird entweder stark herrausbrechen oder es braucht genrell alles sehr viel Zeit. Du kannst ja noch zusätzlich ganz am Angang und am Ende des Scriptes messen.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Hi,

    ich hoffe ich habe das richtig gemacht.
    ich kann die Zahlen nicht interpretieren - Gefühl dauerte ewig... mit der Stoppuhr gemessen : Dauer 15-45 Sekunden...

    Zeitmessung :

    Antwort definieren:

    Code
    echo "json abfrage time2-time1  :".($time2 - $time1)."<br><br>";
    echo "json response time3-time2:".($time3 - $time2)."<br><br>";
    echo "json decode time4-time3:".($time4 - $time3)."<br><br>";
    echo "kodi titel time5-time4:".($time5 - $time4)."<br><br>";
    echo "kodi thumb time6-time5:".($time6 - $time5)."<br><br>";
    echo "kodi fanart time7-time6:".($time7 - $time6)."<br><br>";


    Antwort

  • Das sieht irgendwie komisch aus aber der Logik nach muesste es so funktionieren. Die Gesamtzeit des Scriptes wäre dann aber $time7 - $time1
    Ich habe die Messung mal bei mir gemacht. Das einzige was überhaupt eine Zeit erbbracht hat war das abrufen des JSon Strings von Kodi. Das hat bei mir 0.0780sek gebraucht. Alles andere geht in der Messung unter, da es so schnell geht und die Differenz immer 0 ist. Ich habe nochmal curl gegen file_get_contents getestet. curl war fast immer doppelt so schnell.

    Lass bitte nochmals mein Script hier ablaufen und poste mal die Zeiten.

    Meine Zeiten bei dem Test sehen so aus:

    Code
    1 :0
    2 :0
    3 :0
    4 :0.015599966049194
    5 :0
    6 :0
    7 :0
    8 :0
    9 :0.015599966049194

    Die Gesamtlaufzeit des Scriptes sind also so um die 0.016sek. Das ist das was gemessen werden kann innerhalb von PHP.

    Mein Heimkino

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • mit deinem Script erhalte folgende Antwort...
    ich würde ja sagen, der Teil braucht zu lange
    $json_response = GetURLAsString($json);

    Code
    1 :2.0980834960938E-5
    2 :2.5033950805664E-5
    3 :4.1007995605469E-5
    4 :25.484629869461
    5 :0.0011360645294189
    6 :0.0024449825286865
    7 :9.7036361694336E-5
    8 :3.7908554077148E-5
    9 :25.488432884216

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!