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 :
<?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)
<?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">';
?>