SAM wil niet afspelen

Voor vragen over Playlist Automation Language.

SAM wil niet afspelen

Ongelezen berichtdoor eric86 » 22 maart 2010 16:49

Hoi,

Wie kan mij helpen met het volgende. Ik heb dit script gemaakt:
Code: Selecteer alles

//Script starten
Begin
Pal.Loop:=True;

// Rogos starten (9:00 t/m 17:40)
Pal.WaitForTime((Now>=(T['09:00:00'])));
  Queue.Clear;
While ((Now<=(T['17:40:00']))) do
  Begin
  Queue.AddFile('http://ZGSICE00.care4go.nl:8000/Rogos',ipTop);
  end;

PAL.WaitForTime((Now>=(T['17:40:00'])));
ActivePlayer.FadeToNext;

// Random muziek tussendoor (t/m 20:00)
Queue.Clear;
While ((Now<=(T['20:00:00']))) do
   Begin
   Cat['RandomMuziek'].QueueBottom(smRandom, EnforceRules);
   Cat['RandomMuziek'].QueueBottom(smRandom, EnforceRules);
   end;

//script beëindigen
end;


Nu is het zo, dat SAM de http://ZGSICE00.care4go.nl:8000/Rogos netjes in de queue zet, maar de spelers blijven staan op Deck empty..

Rara...
Wie kan er helpen?

Mvg,
Eric
Random avatar
eric86
Beginnende SAM-gebruiker
 
Berichten: 9
Geregistreerd: 20 jan 2010 14:41
 
SAM-versie: 2.8.1.
Database: MySQL 5.0
 
Online: 0s

Re: SAM wil niet afspelen

Ongelezen berichtdoor Gerrit » 22 maart 2010 17:51

Als ik deze: http://ZGSICE00.care4go.nl:8000/Rogos aanklik dan krijg ik "De webpagina kan niet worden weergegeven" tezien !
Dus kan er ook niets afgespeeld worden, waarschijnlijk zit er een fout in de link !
Vroeger was ik een twijfelaar, ik ben daar nu niet meer zo zeker van.
en
Ik houd van kritiek, maar ik moet het er wel mee eens zijn.
Avatar gebruiker
Gerrit
Moderator
 
Berichten: 880
Geregistreerd: 16 nov 2008 00:08
Woonplaats: Veenendaal
 
SAM-versie: 4.3.6.*
Database: MySQL 5.0
Windows: 7 32-bits
 
Online: 15d 23h 48m 4s

Re: SAM wil niet afspelen

Ongelezen berichtdoor cyberneticorganism » 22 maart 2010 18:06

Code: Selecteer alles
//Script starten
Begin
Pal.Loop:=True;
Pal.LockExecution;

// Rogos starten (9:00 t/m 17:40)
while ((Now >= T['08:59:25']) and (Now <= T['08:59:42'])) do
begin
Pal.UnLockExecution;
Pal.WaitForTime(T['09:00:00']);
  Queue.AddFile('http://ZGSICE00.care4go.nl:8000/Rogos',ipTop);
  ActivePlayer.FadeToNext;
  Pal.LockExecution;
  end;

while ((Now >= T['17:39:25']) and (Now <= T['17:39:42'])) do
begin
Pal.UnLockExecution;
PAL.WaitForTime(T['17:40:00']);
ActivePlayer.FadeToNext;
Pal.LockExecution;
end;
Pal.UnLockExecution;
 
// Random muziek tussendoor (t/m 20:00)
Queue.Clear;
While ((Now<=(T['20:00:00']))) do
   Begin
   Cat['RandomMuziek'].QueueBottom(smRandom, EnforceRules);
   Cat['RandomMuziek'].QueueBottom(smRandom, EnforceRules);
   end;

//script beëindigen
end;


Ik heb het bovenste deel voor je aangepast, dat moet nu werken zoals het hoort. Het onderste deel vanaf 20:00 uur is me niet helemaal duidelijk. Wat moet daar precies gebeuren? Alles van 17:40 t/m 09:00 de volgende morgen is nonstop? :)
Afbeelding
Avatar gebruiker
cyberneticorganism
VIP
 
Berichten: 912
Geregistreerd: 11 jun 2008 17:14
 
SAM-versie: 4.7.3.
Database: MySQL 5.0
Windows: 7 64-bits
 
Online: 18d 21m 1s

Re: SAM wil niet afspelen

Ongelezen berichtdoor Gerrit » 22 maart 2010 18:19

Code: Selecteer alles
Queue.AddFile('http://ZGSICE00.care4go.nl:8000/Rogos',ipTop);

Moet dat niet zo zijn:
Code: Selecteer alles
Queue.AddURL('http://ZGSICE00.care4go.nl:8000/Rogos',ipTop);
Vroeger was ik een twijfelaar, ik ben daar nu niet meer zo zeker van.
en
Ik houd van kritiek, maar ik moet het er wel mee eens zijn.
Avatar gebruiker
Gerrit
Moderator
 
Berichten: 880
Geregistreerd: 16 nov 2008 00:08
Woonplaats: Veenendaal
 
SAM-versie: 4.3.6.*
Database: MySQL 5.0
Windows: 7 32-bits
 
Online: 15d 23h 48m 4s

Re: SAM wil niet afspelen

Ongelezen berichtdoor cyberneticorganism » 22 maart 2010 19:47

Dat is idd ook nog fout... en het originele script gaat überhaupt niet werken. Als mijn logica tenminste klopt.

Ik weet niet of je deze regel wel zo kan gebruiken:

Code: Selecteer alles
Pal.WaitForTime((Now>=(T['09:00:00'])));


Volgens mij moet dat in een while statement hangen, en staat PAL.WaitForTime op deze manier in een script (is een exact tijdstip):

Code: Selecteer alles
PAL.WaitForTime(T['22:00:00']);
Afbeelding
Avatar gebruiker
cyberneticorganism
VIP
 
Berichten: 912
Geregistreerd: 11 jun 2008 17:14
 
SAM-versie: 4.7.3.
Database: MySQL 5.0
Windows: 7 64-bits
 
Online: 18d 21m 1s

Re: SAM wil niet afspelen

Ongelezen berichtdoor eric86 » 23 maart 2010 09:23

Bedankt voor de reacties :)

En Gerrit, nee die link werkt inderdaad niet. Dat is een interne link ;) Ik ga hier mee aan de slag en laat het zo wel weten.

Groeten,

Eric
Random avatar
eric86
Beginnende SAM-gebruiker
 
Berichten: 9
Geregistreerd: 20 jan 2010 14:41
 
SAM-versie: 2.8.1.
Database: MySQL 5.0
 
Online: 0s

Re: SAM wil niet afspelen

Ongelezen berichtdoor eric86 » 23 maart 2010 09:49

cyberneticorganism schreef:
Code: Selecteer alles
//Script starten
Begin
Pal.Loop:=True;
Pal.LockExecution;

// Rogos starten (9:00 t/m 17:40)
while ((Now >= T['08:59:25']) and (Now <= T['08:59:42'])) do
begin
Pal.UnLockExecution;
Pal.WaitForTime(T['09:00:00']);
  Queue.AddFile('http://ZGSICE00.care4go.nl:8000/Rogos',ipTop);
  ActivePlayer.FadeToNext;
  Pal.LockExecution;
  end;

while ((Now >= T['17:39:25']) and (Now <= T['17:39:42'])) do
begin
Pal.UnLockExecution;
PAL.WaitForTime(T['17:40:00']);
ActivePlayer.FadeToNext;
Pal.LockExecution;
end;
Pal.UnLockExecution;
 
// Random muziek tussendoor (t/m 20:00)
Queue.Clear;
While ((Now<=(T['20:00:00']))) do
   Begin
   Cat['RandomMuziek'].QueueBottom(smRandom, EnforceRules);
   Cat['RandomMuziek'].QueueBottom(smRandom, EnforceRules);
   end;

//script beëindigen
end;


Ik heb het bovenste deel voor je aangepast, dat moet nu werken zoals het hoort. Het onderste deel vanaf 20:00 uur is me niet helemaal duidelijk. Wat moet daar precies gebeuren? Alles van 17:40 t/m 09:00 de volgende morgen is nonstop? :)


Hoi,

Een paar vragen..

1. Waarom heb je deze regel erin gezet?
Code: Selecteer alles
while ((Now >= T['08:59:25']) and (Now <= T['08:59:42'])) do.....
Nu gaat het script alleen dit stukje uitvoeren als het tussen die tijden is, zo niet dan wordt dit stuk overgeslagen. Terwijl het de bedoeling is dat er vanaf 9 uur t/m 17:40 deze link afgespeeld wordt.

2.En waarom dit stukje?
Code: Selecteer alles
while ((Now >= T['08:59:25']) and (Now <= T['08:59:42'])) do
begin
Pal.UnLockExecution;
Pal.WaitForTime(T['09:00:00']);
  Queue.AddFile('http://ZGSICE00.care4go.nl:8000/Rogos',ipTop);
  ActivePlayer.FadeToNext;
  Pal.LockExecution;
  end;

Daar blijft het script doordraaien vanaf
Code: Selecteer alles
begin
tot
Code: Selecteer alles
end;
. Wat m.i. logisch is, want dat staat er ook. Wat nu gebeurd, is dat mijn queue gevuld wordt met telkens dezelfde link, maar nog niet gaat afspelen....

En met het laatse stukje wil ik bereiken dat, na de uitzending die 17:40 is afgelopen, er random muziek gedraaid wordt tot 20:00.

Groeten,

Eric
Random avatar
eric86
Beginnende SAM-gebruiker
 
Berichten: 9
Geregistreerd: 20 jan 2010 14:41
 
SAM-versie: 2.8.1.
Database: MySQL 5.0
 
Online: 0s

Re: SAM wil niet afspelen

Ongelezen berichtdoor eric86 » 23 maart 2010 11:24

Probleem opgelost..

Heb het script wat omgebouwd en ben op het volgende uitgekomen:
Code: Selecteer alles
//Script is voor 1 dag dus geen loop
Pal.Loop:=False;
Pal.LockExecution;

// Variablen declareren
var Song : TSongInfo;
var A,P  : TPlayer;

A := ActivePlayer;
P := IdlePlayer;
//---------
//Deck leegmaken
ActivePlayer.Eject;
QueuedPlayer.Eject;
Queue.clear;

// 8:55:00 Que vullen met Rogos
Pal.UnLockExecution;
PAL.WaitForTime(T['08:55:00']);
Queue.AddFile('http://ZGSICE00.care4go.nl:8000/Rogos',ipTop);

// en om 09:00 laten afspelen tot 17:40
Pal.LockExecution;
PAL.WaitForTime(T['08:59:00']);

//Owja, nog even checken of de queue en de players gevuld zijn.
// zo niet dan heel rap doen en afspelen die handel.
Song := Queue.NextInQueue;
if Song = nil then
 WriteLn('Queue is empty')
else
begin
 if P <> nil then P.QueueSong(Song);
 if A <> nil then A.FadeToNext;
end;
Pal.UnLockExecution;
QueuedPlayer.FadeToPlay;

// En weer wachten tot 17:40
PAL.WaitForTime(T['17:40:00']);
Pal.LockExecution;


Nu alleen nog even de Random muziek erin bouwen ;)
Random avatar
eric86
Beginnende SAM-gebruiker
 
Berichten: 9
Geregistreerd: 20 jan 2010 14:41
 
SAM-versie: 2.8.1.
Database: MySQL 5.0
 
Online: 0s

Re: SAM wil niet afspelen

Ongelezen berichtdoor cyberneticorganism » 23 maart 2010 13:04

Dit stuk moest je eigenlijk even weglaten:

Code: Selecteer alles
// Random muziek tussendoor (t/m 20:00)
Queue.Clear;
While ((Now<=(T['20:00:00']))) do
   Begin
   Cat['RandomMuziek'].QueueBottom(smRandom, EnforceRules);
   Cat['RandomMuziek'].QueueBottom(smRandom, EnforceRules);
   end;

//script beëindigen
end;


En over het script: Hij blijft het script van boven naar beneden doorlopen (constant), en als het tussen...

Code: Selecteer alles
while ((Now >= T['08:59:25']) and (Now <= T['08:59:42']))


...is gaat hij verder wachten tot het 09:00 uur. Dan plaatst hij de url in de speler en blijft SAM deze afspelen tot hij...

Code: Selecteer alles
while ((Now >= T['17:39:25']) and (Now <= T['17:39:42']))


... heeft bereikt. Dan gaat hij verder met het afspelen van de tracks die in de queue staan (als er tenminste een clockwheel draait).

Jou manier is ook prima denk ik, zo te zien heb jij meer verstand van de Delphi taal in SAM dan ik.
Afbeelding
Avatar gebruiker
cyberneticorganism
VIP
 
Berichten: 912
Geregistreerd: 11 jun 2008 17:14
 
SAM-versie: 4.7.3.
Database: MySQL 5.0
Windows: 7 64-bits
 
Online: 18d 21m 1s

Re: SAM wil niet afspelen

Ongelezen berichtdoor eric86 » 23 maart 2010 15:50

Ok, ik heb de random muziek ook voor elkaar :D
voor wie geintresseerd is:
Dit script speelt vanaf een begintijd tot een eindtijd random muziek af vanuit de categorie Tracks.

Code: Selecteer alles
Begin
Pal.Loop:=False;
Pal.LockExecution;

// Variablen declareren
// Hieronder start en eindtijd invullen!
//-----------------------------------------------------------------
Var ST : DateTime = T['15:40:00'];      //hier de startijd invullen
Var ET : DateTime = T['20:00:00'];      //hier de eindtijd invullen
//-----------------------------------------------------------------
// Hieronder niets meer wijzigen!!
var Song : TSongInfo;
var A,P  : TPlayer;


A := ActivePlayer;
P := IdlePlayer;
//---------
//Deck leegmaken

//Deck leegmaken
ActivePlayer.Eject;
QueuedPlayer.Eject;
Queue.clear;

//Even 1 track gereed zetten. Is makkelijker mbt het scripten :)
Pal.UnLockExecution;
PAL.WaitForTime(ST);
CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules);
Pal.LockExecution;


//Owja, nog even checken of de queue en de players gevuld zijn.
// zo niet dan heel rap doen en afspelen die handel.
Song := Queue.NextInQueue;
if Song = nil then
WriteLn('Queue is empty')
else
begin
if P <> nil then P.QueueSong(Song);
if A <> nil then A.FadeToNext;
end;
Pal.UnLockExecution;
QueuedPlayer.FadeToPlay;
While ((Now<=(ET))) do
Begin
CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules);
PAL.WaitForQueue(1);
end;
//Speelt de laatse track nog af..

// En weer wachten tot 20:00
PAL.WaitForTime(ET);
Pal.LockExecution;
end;

Random avatar
eric86
Beginnende SAM-gebruiker
 
Berichten: 9
Geregistreerd: 20 jan 2010 14:41
 
SAM-versie: 2.8.1.
Database: MySQL 5.0
 
Online: 0s


Keer terug naar PAL

Wie is er online

Gebruikers op dit forum: Google [Bot] en 1 gast