Malo uz tvoju pomoć Milane, malo uz pomoć helpova i primera, napredovao sam i napisao skript koji sluša nekoliko naših Internet stanica. Staviću ga ovde, možda ga neko iskoristi da napravi bolji Internet radio u Flešu, a ako misliš da je preveliki i neprimeren za ovde, ti ga jednostavno obriši.
package
{
import flash.display.Sprite;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.*;
public class ListExample extends Sprite
{
import flash.events.*;
import fl.data.DataProvider;
import fl.controls.List
import fl.controls.Label
import fl.controls.Button
private var clearButton:Button;
private var startButton:Button;
private var availableItems:List;
private var selectedItemList:List;
private var selectedItemsList:List;
public var kanal:SoundChannel = new SoundChannel();
public var adresa:Array = new Array("
http://77.105.36.58:8881","http://sh1.beotel.net:8002",
"
http://91.214.45.59:8052","http://mediastream.my-its.com:9320",
"
http://live.radiobuca.rs:8000","http://77.92.85.113:10400",
"
http://213.246.55.5:9545",
"
http://67.212.179.133:8400","http://174.132.123.90:8004",
"
http://www.radionovosti.rs:443/radionovosti56s.mp3");
public var imest:Array = new Array("Radio INDEX","Radio S","OK Radio",
"HIT Radio KG","Radio BUCA NS","Radio PINGVIN",
"996 FM Kraljevo","TOP FM Arandjelovac","NAXI Radio","Radio NOVOSTI");
public var index:uint = new uint();
public var _zvuk:Sound = new Sound();
public var zahtev:URLRequest = new URLRequest();
public var playing:Boolean = false;
public var praznaLista:Boolean = true;
public function ListExample() {
createComponents();
setupComponents();
}
private function setupComponents():void {
var dp:Array = new Array();
var in:uint;
var count:uint = availableItems.rowCount * 2;
for (in = 0; in< count; in++) {
dp.push({label:imest[in]});
}
availableItems.allowMultipleSelection = false;
availableItems.dataProvider = new DataProvider(dp);
availableItems.dataProvider = new DataProvider(dp);
availableItems.addEventListener(Event.CHANGE, updateLists);
}
private function clearHandler(event:MouseEvent):void {
availableItems.clearSelection();
selectedItemList.dataProvider = new DataProvider();
kanal.stop();
_zvuk.close();
playing=false;
praznaLista=true;
}
private function updateLists(e:Event):void {
if (!playing)
{
selectedItemList.dataProvider = availableItems.selectedItem ? new DataProvider
([availableItems.selectedItem]) : new DataProvider();
index=availableItems.selectedIndex;
if (index==-1)
{
index=0;
}
startButton.addEventListener(MouseEvent.CLICK, pustiRadio);
clearButton.addEventListener(MouseEvent.CLICK, clearHandler);
zahtev.url= adresa[index];
_zvuk = new Sound();
_zvuk.load(zahtev);
praznaLista=false;
}
}
private function pustiRadio(event:MouseEvent):void {
if (!playing&&!praznaLista)
{
kanal = _zvuk.play();
playing=true;
}
}
private function createComponents():void {
clearButton = new Button();
startButton = new Button();
availableItems = new List();
selectedItemList = new List();
selectedItemsList = new List();
var availableItemsLabel:Label = new Label();
var selectedItemListLabel:Label = new Label();
var selectedItemsListLabel:Label = new Label();
clearButton.move(10,142);
startButton.move(120,142);
availableItems.move(10,32);
selectedItemList.move(120,32);
availableItemsLabel.move(10,10);
selectedItemListLabel.move(120,10);
clearButton.label = "Stop";
startButton.label = "Start";
availableItemsLabel.text = "Internet radio";
selectedItemListLabel.text = "Sada slusate";
addChild(clearButton);
addChild(startButton);
addChild(availableItems);
addChild(selectedItemList);
addChild(availableItemsLabel);
addChild(selectedItemListLabel);
}
}
}
Da bi skript radio potrebno je da se u biblioteku uvezu komponente Button, List i Label. Radio "pristojno" radi, mada ga nisam previše testirao, ali ima jedan VELIKI problem, a rekao bih da nije problem u kodu: ista stanica može da se pusti DVA puta i onda ćuti, baš ono što si i ti primetio. Pa evo ovde pitanje i za tebe i za sve ostale: jeli problem u Flash Security Policy i kako ga rešiti ili u nečem drugom? Fleš nije naklonjen naročito audio strimovima, pa osim što može da sluša samo strimove sa http protokolom i mp3 formatom, još, eto, ne da da se isti strim sluša više od dva puta. Video sam po forumima da je Adobe uveo Security Policy iz bezbednosnih razloga, ali što je mnogo, mnogo je. Bar ja tako mislim. Ako je to uopšte u pitanju.
[Ovu poruku je menjao exsaba dana 14.07.2010. u 17:54 GMT+1]
[Ovu poruku je menjao exsaba dana 14.07.2010. u 17:56 GMT+1]
[Ovu poruku je menjao exsaba dana 14.07.2010. u 17:58 GMT+1]
[Ovu poruku je menjao exsaba dana 14.07.2010. u 18:01 GMT+1]
[Ovu poruku je menjao exsaba dana 14.07.2010. u 18:08 GMT+1]
[Ovu poruku je menjao exsaba dana 14.07.2010. u 22:13 GMT+1]