Radio

Répondre
Rw Ronas
Messages : 5
Enregistré le : 22 mai 2019, 19:55

Radio

Message par Rw Ronas » 04 juin 2019, 21:21

Bonsoir
je ne sait pas si cela intéresse du monde
mais je trouve l'idée d'un forum intéressant donc autan participé
alors je commence avec un script qui n'est pas de moi mais que je trouve utile a nos terrain
une radio oui simple vous aller me dire mais voila il fonctionne et j'ai fait aussi la note-card qui va avec avec une liste de radio
suivant les retour de ce post je répondrai avec la note_card

merci a tous

Code : Tout sélectionner

// Script Name: Radio_script.lsl
// Category: Radio
// Description: This Radio ist working into open grid too, changed and tested by me. On touch it will give you a dialog. Put this script into a object your choice! This script will change the media url of the owners parcel.
//NC "stations" with url`s of streams is needed! Write in this NC something like this "Radio1=http://....."
// Comment: The Script
//
// Downloaded from : http://www.free-lsl-scripts.com/freescripts.plx?ID=1431
//
// From the Internet LSL Script Database & Library of Second Life™ scripts.
// http://www.free-lsl-scripts.com  by Ferd Frederix
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the license information included in each script
// by the original author.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
//
//
////////////////////////////////////////////////////////////////////
string  _notecard = "stations";

integer chatChannel = 77;
string HELP_MSG = "touch for station dialog, or use ch 77 to change stations (example  /77 3)";

list    _radioURLs;
list    _radioStations;
list    theStations;

integer _linenum = 0;
integer curStationOffset = 0;
integer stationChunk = 6;
integer curStationEnd = 5;
integer totalStations = 0;
integer dialogActive = 0;
integer curIdx  = -1;
string dispStationStr = "";

string NEXT_MSG = "Next >>";
string PREV_MSG = "<< Prev";
string LIST_MSG = "List";

string CUR_SET  = "c";
string ALL_SET  = "a";
list cmdNextChunk;
        list cmdPrevChunk;
        list cmdLsCur;
        list cmdLsAll;
        list cmdSearch;


string newURL;
string newDesc;
   
//-----------------------

reset_radio() {
    llSetText("starting radio ....", // message to display
              <1,0,0>, // color: <red,green,blue>
              1.0 ); // 1.0 = 100% opaque, 0.0 = transparent
    llListen(77, "", "", "");
    curStationOffset = 0;
    curStationEnd = 5;
    _linenum = 0;
    dialogActive = 0;
    _radioURLs = [];
    _radioStations = [];
    totalStations = 0;
    curIdx = -1;
    dispStationStr = "";
    llGetNotecardLine(_notecard, _linenum);
}

add_station(string line) {
    list words = llParseString2List(line, [" ", " ", "="], []);
    if (llGetListLength(words) < 2) {
        return;
    }
    string url = llList2String(words, llGetListLength(words) - 1);
    string station = "";
    integer i;

    for (i=0; i<llGetListLength(words) - 1; i++) {
        if (llStringLength(station) > 0) {
            station += " ";
        }
        station += llList2String(words, i);
    }
   
    _radioURLs += [url];
    _radioStations += [station];
}


curStations() {
    theStations = [PREV_MSG, LIST_MSG, NEXT_MSG];

    integer i;
    dispStationStr = "";

   // llWhisper(0, "offset: " + (string)curStationOffset);
    // llWhisper(0, "end: " + (string)curStationEnd);
               
    for (i = curStationOffset; i <= curStationEnd; i++) {
        if (curIdx == i) {
            dispStationStr += "*";   
        } else {
            dispStationStr += "  ";   
        }
        dispStationStr += (string) (i + 1) + ") ";
        dispStationStr += llList2String(_radioStations, i);
        dispStationStr += "-";
       
        theStations += (string)(i + 1);
    }
}


doNextSet() {
    curStationOffset += stationChunk;
    curStationEnd = curStationOffset + (stationChunk - 1);
   
    if (curStationOffset >= totalStations) {
        curStationOffset = 0;
        curStationEnd = curStationOffset + (stationChunk - 1); 
    }
   
    if (curStationEnd >= totalStations) {
        curStationEnd = totalStations - 1;   
    }
}


doPrevSet() {
    if (curStationOffset > 1  && ((curStationOffset - stationChunk) < 1)) {
        curStationOffset = 0;
    } else {
        curStationOffset -= stationChunk;
    }

    curStationEnd = curStationOffset + (stationChunk - 1);
   
    if (curStationEnd >= totalStations) {
        curStationEnd = totalStations - 1;   
    }
   
    if (curStationOffset < 0) {
        curStationEnd = totalStations - 1;
        curStationOffset = totalStations - (stationChunk - 1); 
    }
}

doListStations(string mode) {
    integer i;
    integer startPos;
    integer endPos;
   
    if (mode == "a") {
        startPos = 0;
        endPos = totalStations - 1;   
    } else {
        startPos = curStationOffset;
        endPos = curStationEnd;
    }
   
    for (i = startPos; i <= endPos; i++) {
        string newURL = llList2String(_radioURLs, i);
        string newDesc = llList2String(_radioStations, i);
        llSay(0, (string)(i + 1) + ": " + newDesc + " = " + newURL);
    }   
}


doSearch(list theTerms) {
    integer i;
    string thePhrase = llToLower(llDumpList2String(theTerms, " "));
    llSay(0, "the term is " + thePhrase);
   
    for (i = 0; i < totalStations; i++) {
        string curString = llList2String(_radioStations, i);
        if (llSubStringIndex(llToLower(curString), thePhrase) != -1) {
            string newURL = llList2String(_radioURLs, i);
            llSay(0, (string)(i + 1) + ": " + curString + " = " + newURL);
        }
    } 
}

//-----------------------

default {
    on_rez(integer start_param) {
        reset_radio();
    }
   
    state_entry() {
        reset_radio();
        cmdNextChunk = [">>", "next", "Next", NEXT_MSG];
        cmdPrevChunk = ["<<", "prev", "Prev", PREV_MSG];
        cmdLsCur     = ["ls", "list", LIST_MSG];
        cmdLsAll     = ["la", "listall"];
        cmdSearch    = ["s", "search"];
       
    }
   
    changed(integer change) {
        if (change & CHANGED_INVENTORY) {
            reset_radio();
        }
    }

    dataserver(key query_id, string data) {
        if (data != EOF) {
            add_station(data);
            _linenum++;
           
            if (_linenum % 3 == 0) {
                  llSetText("starting: n" + (string)_linenum + " stations ...", // message to display
              <1,0,0>, // color: <red,green,blue>
              1.0 ); // 1.0 = 100% opaque, 0.0 = transparent   
            }
            llGetNotecardLine(_notecard, _linenum);
            return;
        }
        llListen(93, "", NULL_KEY, "");
       
        totalStations = llGetListLength(_radioURLs);       
        llSay(0, HELP_MSG);
        dialogActive = 1;
        llSetText("Radio  \n", <1,1,1>, 1.0 );
    }
   
    touch_start(integer touchNumber) {
        curStations();
       
        llDialog(llDetectedKey(0),
            dispStationStr,
            theStations, 93);       
    }

    listen(integer channel, string name, key id, string message) {

        if (dialogActive == 0) {
            llWhisper(0, " ... still loading stations ...");
            return;   
        }
       
        if (message == "") {
            message = "cur";
        }
       
       
        list words = llParseString2List(message, [" ", " ", "="], []);       
        list testFind = llList2List(words, 0, 0);
                       
        if (llListFindList(cmdNextChunk, testFind) != -1) {
            doNextSet();
            curStations();
            if (channel == chatChannel) {
                doListStations(CUR_SET);
            } else {
                llDialog(id, dispStationStr,theStations, 93);
            }
            return; 
        }
         
        else if (llListFindList(cmdPrevChunk, testFind) != -1) {
            doPrevSet();
            curStations();
            if (channel == chatChannel) {
                doListStations(CUR_SET);   
            } else {
                llDialog(id, dispStationStr, theStations, 93);
            }
            return;   
        }     
         
        else if (llListFindList(cmdSearch, testFind) != -1) {
            doSearch(llList2List(words, 1, -1));
            return;   
        }
         
        else if (llListFindList(cmdLsAll, testFind) != -1) {
            doListStations(ALL_SET);
            return; 
        }
       
       
        else if (llListFindList(cmdLsCur, testFind) != -1) {
            doListStations(CUR_SET);
            return;
        }
       

        else if ((integer)message > 0 && (integer)message < 256) {
            curIdx = (integer)message - 1;
           
            string newURL = llList2String(_radioURLs, curIdx);
            string newDesc = llList2String(_radioStations, curIdx);
           
            llSay(0, "setting station " + message + ":");
            llSay(0, newDesc + " = " + newURL);
            llSetParcelMusicURL(newURL);
         }
    }
}
// Look for updates at : http://www.free-lsl-scripts.com/freescripts.plx?ID=1431
// __END__

Avatar du membre
MIRANDA
Messages : 3
Enregistré le : 23 mai 2019, 04:16

Re: Radio

Message par MIRANDA » 05 juin 2019, 03:40

Bonjour,
Merci beaucoup ,un script intéressant

biz

Rw Ronas
Messages : 5
Enregistré le : 22 mai 2019, 19:55

Re: Radio

Message par Rw Ronas » 05 juin 2019, 22:13

Bonsoir
voila j'ai chercher a trouver des flux de radio Française
mais voila après un tas de pub et autre nos cher radio française préfère nous passer de la pub plutôt que de
donner le flux pour es écouter
donc pour certaine j'ai baisser les bras pour le moment
mais je vous laisse donc le contenue qu'il faut glisser dans une note
il faut ensuite renommer la note " stations " coller avec le script dans la même prime
on oublie pas de céder au groupe du terrain et le tour est joué
si quelqu’un a d'autre flux merci de faire passer

Code : Tout sélectionner

Nostalgie= http://cdn.nrjaudio.fm/audio1/fr/40106/mp3_128.mp3
Classic=http://radioclassique.ice.infomaniak.ch/radioclassique-high.mp3
Skyrock=http://icecast.skyrock.net/s/natio_mp3_128k
RFM= http://rfm-live-mp3-128.scdn.arkena.com/rfm.mp3
Virgin=http://vr-live-mp3-128.scdn.arkena.com/virginradio.mp3
RTL 2=http://streaming.radio.rtl2.fr/rtl2-1-48-192
RTL=http://streaming.radio.rtl.fr/rtl-1-48-192
FUN=http://streaming.radio.funradio.fr/fun-1-48-192
Cherie=http://cdn.nrjaudio.fm/audio1/fr/40104/mp3_128.mp3

Tristan Dehaie
Messages : 3
Enregistré le : 11 août 2019, 18:56

Re: Radio

Message par Tristan Dehaie » 18 août 2019, 11:33

Ci dessous un lien vers une liste de radios FR.....
Rien de vérifié, donc il faut tester :)
https://doc.ubuntu-fr.org/liste_radio_france

Répondre