dj overname probleem *OPGELOST*

Voor vragen over Playlist Automation Language.
Radio Delta

dj overname probleem *OPGELOST*

Ongelezen bericht door Radio Delta »

Wij hebben het onderstaande PAL script draaien. We hebben dit sript 3 keer draaien met elke keer een andere relay server. Zodra er 1 relay actief is, wordt er 1 url in de queue geladen. Wanneer die url wordt afgespeeld door SAM, worden de andere urls die niet actief zijn ook in de queue geladen. Bestaat er een mogelijkheid dit op te lossen of om met 1 palscript te werken? Al vast bedankt.

Code: Selecteer alles

PAL.Loop:=True;
var I : Integer;
var SongA : TsongInfo;
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 0 ; //  Statistics Relay nummer (#) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://host:port/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
SongA.Free;
PAL.WaitForTime(T['+00:00:25']); // 25 seconden pauze voor volgende stream check
PAL.LockExecution;

drOhimself

Re: dj overname probleem

Ongelezen bericht door drOhimself »

De opbouw van je PAL lijkt mij niet goed :

Code: Selecteer alles

PAL.Loop:=True;
......
PAL.LockExecution;
......
PAL.UnlockExecution;
.......
PAL.LockExecution;
Om dit script 3x te hebben draaien, lijkt me dan ook vragen om moeilijkheden.
Probeer die 3 relay-streams in een PAL te zetten.
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Hoe doe ik dat?

Kan ik gewoon alle scripts onder elkaar zetten?
drOhimself

Re: dj overname probleem

Ongelezen bericht door drOhimself »

Hier op het forum is dit volgens mij al een keer langsgekomen.
Weet het zo gauw even niet te vinden.

Maar heb je eigenlijk ergens een probleem mee?
Het inladen van URLS die geen stream hebben, zou toch geen effect moeten hebben op de uitzending?
Of wel ?
Kortom, beschrijf even precies wat er gebeurt, en wat je eigenlijk verwacht.

Die 3 PAL scripts, hoe staan die nu in SAM ?
Worden ze nu simultaan gedraaid, of worden ze met ES aangezet ?
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Wanneer de andere urls ook worden ingeladen terwijl er geen stream loopt, duurt het per url een hele tijd voordat het volgende nummer wordt ingeladen. De luisteraars ervaren dan een lange stilte. Die stilte is er ook wanneer de stream die ingeladen is stopt met uitzenden maar dan is dat een heel stuk korter.

De PAL scripts draaien continu. Ze controleren of er een relay server actief is en zo ja wordt de url in de queue gezet.
drOhimself

Re: dj overname probleem

Ongelezen bericht door drOhimself »

Denk dat ik al zie waar het bij jullie fout gaat.
Indien jullie het bovenstaande PAL script zo overnemen (met alleen de stream gegevens aangepast), dan gaat het idd zoals het nu gaat (niet goed)
Waar je even voor moet opletten is dat je de relays gegevens in alle 3 de PAL scripts aanpast.
Dus PAL 1 staat goed, maar PAL 2 moet worden :

Code: Selecteer alles

PAL.Loop:=True;
var I : Integer;
var SongA : TsongInfo;
SongA := Activeplayer.GetSonginfo();
// PAL.LockExecution;
I := 1 ; //  Statistics Relay nummer (2) -1 (min één) !!!!
begin;
En PAL 3 wordt dan :

Code: Selecteer alles

PAL.Loop:=True;
var I : Integer;
var SongA : TsongInfo;
SongA := Activeplayer.GetSonginfo();
// PAL.LockExecution;
I := 2 ; //  Statistics Relay nummer (3) -1 (min één) !!!!
begin;
Dus deze regels gaat het om...
PAL 1 - I := 0 ; // Statistics Relay nummer (1) -1 (min één) = 0 !!!!
PAL 2 - I := 1 ; // Statistics Relay nummer (2) -1 (min één) = 1 !!!!
PAL 3 - I := 2 ; // Statistics Relay nummer (3) -1 (min één) = 2 !!!!

Check dat even !
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Heb het zojuist gecontroleerd en het stond goed. Ook de url klopt met de url die is opgegeven bij static relay.

Is het ook mogelijk om alle urls in een palscript te zetten?
drOhimself

Re: dj overname probleem

Ongelezen bericht door drOhimself »

jah moet mogelijk zijn.
wil je aub alle 3 de PALs hier plaatsen ? (zonder urls)
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Hier zijn de 3 pals, op volgorde van de static relays

PAL script 1

Code: Selecteer alles

PAL.Loop:=True;
var I : Integer;
var SongA : TsongInfo;
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 0 ; //  Statistics Relay nummer (1) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://host:port/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
SongA.Free;
PAL.WaitForTime(T['+00:00:25']); // 25 seconden pauze voor volgende stream check
PAL.LockExecution;
PAL script 2

Code: Selecteer alles

PAL.Loop:=True;
var I : Integer;
var SongA : TsongInfo;
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 1 ; //  Statistics Relay nummer (2) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://host:port/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
SongA.Free;
PAL.WaitForTime(T['+00:00:25']); // 25 seconden pauze voor volgende stream check
PAL.LockExecution;
PAL script 3

Code: Selecteer alles

PAL.Loop:=True;
var I : Integer;
var SongA : TsongInfo;
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 2 ; //  Statistics Relay nummer (3) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://host:port/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
SongA.Free;
PAL.WaitForTime(T['+00:00:25']); // 25 seconden pauze voor volgende stream check
PAL.LockExecution;
drOhimself

Re: dj overname probleem

Ongelezen bericht door drOhimself »

Goed, na lang zoeken / testen / weer zoeken en weer testen is dit eruit gekomen.
Niet full-proof getest omdat ik niet jullie situatie kan nabootsen.
Echter leek het mij te werken.

Code: Selecteer alles

PAL.Loop:=True;
var I : Integer;
var SongA : TsongInfo;
var url : array[0..2] of String;
url[0] := 'http://dj1.stream.nl:12345/';
url[1] := 'http://dj2.stream.nl:6789/';
url[2] := 'http://dj3.stream.nl:8889/';
SongA := Activeplayer.GetSonginfo();
// PAL.LockExecution;
I := 0 ; //  Statistics Relay nummer (#) -1 (min één) !!!!
For I := 0 to Relays.Count-1 do
begin;
        WriteStr('Relay number '); WriteLn(I);
	WriteStr('--Active: '); WriteLn(Relays[I].Active);
//   WriteStr('--Status: '); WriteLn(Relays[I].Status);
// PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl((url[I]),ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
SongA.Free;
PAL.WaitForTime(T['+00:00:25']); // 25 seconden pauze voor volgende stream check
// PAL.LockExecution;
end;

// drOhimself - Broadcasterforum.nl - 5 september 2011
Ongetest, dus check het goed.
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Bedankt voor het palscript. Ik ga het meteen uitproberen en zal laten weten of het werkt.
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Het script werkt alleen met de url die als eerste ingevult staat. Dat is url 0 in het script. Wanneer deze actief is wordt de url in de queue gezet.

Wanneer bijvoorbeeld alleen url 2 actief is wordt er niets in de queue gezet.

Wanneer er 2 urls tegelijkertijd actief zijn wordt alleen de url die ingevult staat bij url 0 in de queue gezet.

Wanneer url 1 en url 2 tegelijkertijd actief zijn gebeurt er niets.

Hopelijk kunnen jullie iets met deze informatie.
drOhimself

Re: dj overname probleem

Ongelezen bericht door drOhimself »

Dan zal het iets te maken hebben met de Array of Strings in het script, waarvan de waarde dus niet in de String url komt.
Hopelijk dat onze PAL Goeroe's dit willen bekijken.
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Even afwachten dus?

Al vast bedankt voor de moeite.
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Ik vond het onderstaande script. Ik ga dit script aanpassen en zal laten weten of het werkt.

Code: Selecteer alles

PAL.Loop:=True;
var I : Integer;
var SongA : TsongInfo;
// URL 1
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 0 ; //  Statistics Relay nummer (#) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://localhost:1050/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
// URL 2
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 1 ; //  Statistics Relay nummer (#) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://localhost:1052/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
// URL 3
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 2 ; //  Statistics Relay nummer (#) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://localhost:1054/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
SongA.Free;
PAL.WaitForTime(T['+00:00:25']); // 25 seconden pauze voor volgende stream check
PAL.LockExecution;
drOhimself

Re: dj overname probleem

Ongelezen bericht door drOhimself »

Zo kan het ook, misschien gaat dat zelfs beter !
We horen het graag !
(en zien je PAL ook graag)
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Het script werkt. Hierbij dan het nieuwe script.

Het probleem is dus opgelost. Topic mag gesloten worden.

Code: Selecteer alles

PAL.Loop:=True;
var I : Integer;
var SongA : TsongInfo;
// URL 1
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 0 ; //  Statistics Relay nummer (#) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://host:poort/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
// URL 2
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 1 ; //  Statistics Relay nummer (#) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://host:poort/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
// URL 3
SongA := Activeplayer.GetSonginfo();
PAL.LockExecution;
I := 2 ; //  Statistics Relay nummer (#) -1 (min één) !!!!
begin;
    WriteStr('Relay number '); WriteLn(I);
    WriteStr('--Active: '); WriteLn(Relays[I].Active);
//    WriteStr('--Status: '); WriteLn(Relays[I].Status);
  end;
PAL.UnlockExecution;
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
Queue.AddUrl('http://host:poort/',ipTop); // IP + poort van stream die gestart moet worden.
PAL.WaitForTime(T['+00:00:05']);  // PAL script was soms te snel waardoor stream soms 2x in queue stond. 5 sec pauze dus.
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is in de queue !!! Wacht 1 plaat
If Relays[I].Active = False or (SongA['songtype'] = 'C') then
//do nothing
Else
PAL.WaitForPlayCount(1);  // Stream is aan het spelen !!! Wacht tot stream stopt ...
SongA.Free;
PAL.WaitForTime(T['+00:00:25']); // 25 seconden pauze voor volgende stream check
PAL.LockExecution;
drOhimself

Re: dj overname probleem

Ongelezen bericht door drOhimself »

Is dit script een onderdeel van een ander script?
Ik zie onderaan (laatste regel) nog een PAL.LockExecution regel staan.
Dat verbaast mij een beetje.
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Heb het script gevonden en aangepast.

Kan ik dat beter weg halen dan?
Radio Delta

Re: dj overname probleem

Ongelezen bericht door Radio Delta »

Ben iets te snel geweest met mijn conclusie.

Het script werkt op twee computers die beide hetzelfde zijn ingericht. Beide computers hebben dezelfde database en SAM versie. Ook het aantal PAL scripts dat draait is hetzelfde.

PC 1
Werkt niet goed.
Er worden onverwacht toch urls in de queue gezet terwijl ze niet actief zijn.
Ook wanneer er een url actief is, worden ze allemaal in de queue gezet.

PC 2
Geen problemen.

Heel vreemd want heb alle instellingen nagelopen maar daar zit geen verschil in.

Wat kan dat zijn?
Gesloten
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht