While loop stopt ander draaiend script met while loop.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

RareAMV Unknown

RareAMV Unknown

20/06/2014 14:47:31
Quote Anchor link
Hallo,

Ik ben een beetje aan het klooien met spotify en php, ik gebruik bewust hun api niet dus die onduidelijkheid haal ik meteen even weg, als jullie mijn script zien. Ik wou proberen om een eigen muziekspeler te maken die helaas alleen maar kan afspelen en niet stoppen of pauzeren(kan dus alleen met api, of je moet een zeer goede hacker zijn ofzoiets). Nu wil ik in de toekomst van een database nummers halen(ik kan bijvoorbeeld de playist webpagina doorscannen voor die informatie van de nummers(naam van het liedje en de tijd van het nummer, die wordt zelfs in milliseconde gegeven)) en die achterelkaar laten aanspelen. Daarvoor moet ik een timer maken, en een script die checkt of het nummer speelt of niet. Dat is me op een zeer omslachtige manier gelukt.

Nu wil ik op mijn player script eerst het nummer openen/starten, en dan direct daarna een whileloop starten. Dat werkt ook, maar, omdat ik dus moet checken of het nummer speelt of niet heb ik een andere script draaien die door een debug log van chrome spit naar urls die aantonen of er een pauzeer of speel actie plaatsvind.
Deze script moet nattuurlijk blijven draaien. Helaas vind mijn player script dat niet. Deze pauzeerd alle activiteit op de scan(chrmdeb) script, en laat het pas verder draaien als de while loop op de player script geeindigd is :? ... Oh om informatie over te brengen van de ene naar het andere script gebruik ik sessions, nu denk ik dat daar ergens het probleem zit, maar ik zou niet weten hoe ik dat zou kunnen oplossen :X...

Nu is mijn code een beetje zeer rommelig, dus gelieve daar doorheen kijken.

Spotiplayer.php :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
session_start();
set_time_limit(0);

 $song1 = '0Dzwok10UWrx7038TkpduM';
 $song2 = '7BfWETbNfPXqUOKf7jH5yk';
 $song3 = '3CtzieC6Z6X30dhuTENQQf';

 

$_SESSION['link'] = "https://embed.spotify.com/?uri=spotify:track:" . $song1;

$x = 0;

echo '<!DOCTYPE html><html><body> <script>
                                    var myWindow;
                                    var myWindow2;

                                    function openWin() {
                                    myWindow = window.open("spotify:track:'
. $song1 . '", "myWindow");
                                    myWindow2 = window.open("https://embed.spotify.com/?uri=spotify:track:'
. $song1 . '", "myWindow2");
                                    }

                                    function closeWin() {
                                        myWindow.close();

                                    }

                                   openWin();

                                  

                                    var x;

                                    x=0;

                                    while(x < 60){

                                        x++;

                                        if(x == 58){
                                        closeWin();
                                    }}


                                    

                    
                                    </script></body></html>'
;


                echo 'player loaded';
$songtime1 = 93226;
 $songtime2 = 77600;
 $songtime3 = 110626;

while($x != $songtime1){

  

                

    
    $x++;
    echo $x . '<br>';
    usleep(1000);

}



 




?>


Zoals jullie zien is het zeer basisch allemaal, misschien maak ik er ooit nog een web gui bij, maar eerst maar eens dit probleem zien te vinden en op te lossen.

chrmdeb.php(chrome debug scanner)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
session_start();

$file = 'C:\Users\XXX\AppData\Local\Google\Chrome\User Data\chrome_debug.log';

$searchtag = '/remote/pause.json?pause=true';
$searchtag2 = '/remote/pause.json?pause=false';

if(isset($_SESSION['link'])){
    $searchtag3 = $_SESSION['link'];    
}
else {
    $searchtag3 = 'url=spotify:track:';
}



if(!isset($_SESSION['pause'])){

    $pause = 0;
    echo 'session not set <br>';
    
}
else {
    
    $pause = $_SESSION['pause'];
}


$file_content = file_get_contents($file, NULL, NULL, $pause);
$file_content_play = $file_content;
$file_content_nsong = $file_content;

$x = 1;
$count = 0;
$playcounter = 0;

while($x != 0){



    if($play === false){
        
        

    if($nsong !== false){

        $check = 'playing<br>';
        $_SESSION['playing'] = 1;
        $_SESSION['paused'] = 0;

    }
else {

        $check = 'pauzed<br>';
        $_SESSION['playing'] = 0;
        $_SESSION['paused'] = 1;

    }

    }
else {

        $check = 'playing<br>';

    };
    
    

    if($pauze === false){
        
        break;

    };


    $x++;
    $count++;

    $pauze = strpos($file_content, $searchtag);
    $file_content2 = substr($file_content, $pauze+50);
    $file_content = $file_content2;

    echo '[' .$pauze . '] [pauze][' . $x . ']<br>';
    

    $play = strpos($file_content_play, $searchtag2);
    $file_content2_play = substr($file_content_play, $play+50);
    $file_content_play = $file_content2_play;
    
    echo '[' . $play . '] [play][' . $x . ']<br>';

    $nsong= strpos($file_content_nsong, $searchtag3);
    $file_content2_nsong = substr($file_content_nsong, $nsong+50);
    $file_content_nsong = $file_content2_nsong;
    
    echo $nsong . ' [newsong][' . $x . ']<br>';
    
    echo 'XXXX---' . $pause . '----XXXX<br>';
        
    if($nsong === false){
        $_SESSION['pause'] = $pauze + $_SESSION['pause'];
    }
else {

        $_SESSION['pause'] = $pauze + $_SESSION['pause'] + $nsong;


    }

};






echo 'Music is: ' . $check . '<br>total found: ' . $count . ' <br> total play found: ' . $playcounter . '<meta http-equiv="refresh" content="1">';


?>
 
PHP hulp

PHP hulp

16/04/2024 11:14:37
 
Erwin H

Erwin H

20/06/2014 15:03:06
Quote Anchor link
Dat ligt aan je sessie. php kan een sessie bestand maar voor 1 request tegelijk openen. Zolang dat request dus nog loopt, blijven alle andere request (die hetzelfde sessie bestand nodig hebben) wachten tot het eerste request klaar is en het sessie bestand weer gesloten heeft.

Door je sessie handmatig te sluiten met session_write_close kunnen de andere requests behandeld worden. Alleen, dat betekent dus wel dat je GEEN acties meer kunt doen op de SESSION array. In je tweede script staan een aantal schrijf acties in de sessie, dat kan dan dus niet.
 
RareAMV Unknown

RareAMV Unknown

20/06/2014 15:10:36
Quote Anchor link
Oh, bedankt voor de info, ik zal eens kijken of ik het anders kan oplossen^^.
oftewel, nog omslagtiger te werk gaan, let the fun begin

Edit, een beetje omslachtig, maar het werkt wel, COOKIES FTW!
Gewijzigd op 20/06/2014 15:25:28 door RareAMV Unknown
 
Erwin H

Erwin H

20/06/2014 15:20:50
Quote Anchor link
Wat wellicht beter is is om de data niet in een sessie te stoppen, maar in een database. Daar heb je dat probleem niet. Dan heb je alleen de sessie nodig om een uniek id op te vragen waaronder je het kan vinden in de database, maar dat is dan openen, lezen, sluiten.
 
RareAMV Unknown

RareAMV Unknown

20/06/2014 15:26:20
Quote Anchor link
Oh, had ook gekund, ik heb nu wat geprobeerd met coockies, werkt in iedergeval nu wel.
In iedergeval bedankt voor de suggestie en de hulp!

Toevoeging op 20/06/2014 15:27:22:

RareAMV Unknown op 20/06/2014 15:26:20:
Oh, had ook gekund, ik heb nu wat geprobeerd met cookies, werkt in iedergeval nu wel.
In iedergeval bedankt voor de suggestie en de hulp!
Gewijzigd op 20/06/2014 15:26:53 door RareAMV Unknown
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.