FLV audio player is not streaming correctly

Dear friends, here is the code I use for the FLV sound player on my site http://www.mp3uz.com/music/
The player is on every “play button” image. Just click on it. I use FLV just to be able to determine the length, duration of the file.
The problem is that songs are not streaming, but playing just after full loading.
Any idea? :link:

package 
{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.text.TextField;
    import flash.events.*;
    import flash.net.*;
    import flash.media.Video;
    import flash.media.SoundTransform;
    import flash.utils.*;

    public class odsFLVPlayer extends MovieClip
    {
        private var file:String;
        private var nc:NetConnection = new NetConnection();
        private var ns:NetStream;
        private var flv:Video;
        private var loader:URLLoader = new URLLoader();
        private var client:Object = new Object();

        private var isplaying:Boolean = false;
        private var ispaused:Boolean = false;
        private var voluming:Boolean;
        private var seeking:Boolean;
        private var position:Number;

        private var trans:SoundTransform;
        private var vol:Number;

        private var duration:Number;
        private var minutes:Number;
        private var seconds:Number;
        private var timepass:String;
        private var timer:uint;

        public function odsFLVPlayer():void
        {
            minutes = 0;
            seconds = 0;
            position = 0;
            vol = 0.5;
            init();
        }
        private function init():void
        {
            file = "http://media.mp3uz.com/prv/" + root.loaderInfo.parameters.filename;
            loader.addEventListener(ProgressEvent.PROGRESS, handleProgress);
            loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            
            nc.connect(null);
            ns = new NetStream(nc);
            trace(ns.bufferLength);
            ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, handleAsyncError);
            ns.addEventListener(NetStatusEvent.NET_STATUS, netstat);
            
            flv = new Video();
            client.onMetaData = onMetaData;
            ns.client = client;

            flv.attachNetStream(ns);
            addChild(flv);

            trans = ns.soundTransform;
            trans.volume = vol;
            ns.soundTransform = trans;

            mc_play_pause.gotoAndStop(1);
            mc_play_pause.addEventListener(MouseEvent.CLICK, playPauseFLV);
            mc_play_pause.addEventListener(MouseEvent.MOUSE_DOWN, startDragSeeker);
        }
        private function ioErrorHandler(event:Event):void {
            trace("ioErrorHandler: " + event);
        }
        private function handleAsyncError(event:AsyncErrorEvent):void
        {
            trace(event.text);
        }
        private function handleProgress(event:ProgressEvent):void
        {
            mc_progress_bar.width = event.bytesLoaded / event.bytesTotal * 138;
        }
        private function playPauseFLV(event:MouseEvent):void
        {
            
        }
        private function onMetaData(data:Object):void
        {
            duration = data.duration;
            trace("BufferTime: " + ns.bufferTime);
        }
        private function netstat(stats:NetStatusEvent)
        {
            trace(stats.info.code);
        }
        private function playHeadMove(event:Event):void
        {
            if (ns.time < 1)
            {
                mc_play_pause.x = 4;
            } else
            {
                mc_play_pause.x = Math.floor((139 * ns.time) / duration) + 4;
            }
            minutes = Math.floor(ns.time / 60);
            seconds = Math.floor(ns.time % 60);

            if (minutes.toString().length == 1)
            {
                timepass = "0" + minutes.toString();
            } else
            {
                timepass = minutes.toString();

            }
            if (seconds.toString().length == 1)
            {
                timepass += ":0" + seconds.toString();
            } else
            {
                timepass += ":" + seconds.toString();

            }
            if (voluming == false)
            {
                screen.text = timepass;
            }
        }
        private function startDragSeeker(event:MouseEvent):void
        {
            stage.addEventListener(MouseEvent.MOUSE_MOVE, doDragSeeker);
            stage.addEventListener(MouseEvent.MOUSE_UP, stopDragSeeker);
            mc_play_pause.removeEventListener(Event.ENTER_FRAME, playHeadMove);
        }
        private function doDragSeeker(event:MouseEvent):void
        {
            seeking = true;
            var posX:uint;
            if (event.stageX > 143)
            {
                posX = 134;
            } else if (event.stageX < 13)
            {
                posX = 4;
            } else
            {
                posX = event.stageX - 9;
            }
            mc_play_pause.x = posX;
            ns.pause();
            ns.seek(Math.floor(((mc_play_pause.x - 4) * duration) / 139));
        }
        private function stopDragSeeker(event:MouseEvent):void
        {
            stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDragSeeker);
            stage.removeEventListener(MouseEvent.MOUSE_UP, stopDragSeeker);
            
            if (mc_play_pause.currentFrame == 1)
            {
                loader.load(new URLRequest(file));
                btn_volume.addEventListener(MouseEvent.MOUSE_DOWN, startDragVolume);
            }
            
            if (isplaying == false && ispaused == false)
            {
                isplaying = true;
                ispaused = false;
                ns.play(file);
                mc_play_pause.gotoAndStop(10);
            } else if (ispaused == true && isplaying == false && seeking == false)
            {
                isplaying = true;
                ispaused = false;
                ns.resume();
                trace("Resumed from: " + ns.time.toString());
                mc_play_pause.gotoAndStop(10);
            } else if (ispaused == true && isplaying == false && seeking == true)
            {
                ispaused = false;
                isplaying = true;
                ns.resume();
                mc_play_pause.gotoAndStop(10);
            } else if (isplaying == true && ispaused == false && seeking == false)
            {
                isplaying = false;
                ispaused = true;
                trace("Paused at: " + ns.time.toString());
                ns.pause();
                mc_play_pause.gotoAndStop(2);
            } else if (isplaying == true && ispaused == false && seeking == true)
            {
                ns.pause();
                ns.resume();
            }
            seeking = false;
            mc_play_pause.addEventListener(Event.ENTER_FRAME, playHeadMove);
        }
        private function setVolume():void
        {
            trans.volume = vol;
            ns.soundTransform = trans;
        }
        private function startDragVolume(event:MouseEvent):void
        {
            voluming = true;
            stage.addEventListener(MouseEvent.MOUSE_MOVE, doDragVolume);
            stage.addEventListener(MouseEvent.MOUSE_UP, stopDragVolume);
            screen.text = Math.floor(vol * 100).toString() + "%";
        }
        private function doDragVolume(event:MouseEvent):void
        {
            var posX:uint;
            if (event.stageX > 259)
            {
                posX = 251;
            } else if (event.stageX < 214)
            {
                posX = 206;
            } else
            {
                posX = event.stageX - 8;
            }
            btn_volume.x = posX;
            vol = (btn_volume.x - 206) / 45;
            setVolume();
            screen.text = Math.floor(vol * 100).toString() + "%";
        }
        private function stopDragVolume(event:MouseEvent):void
        {
            voluming = false;
            stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDragVolume);
            stage.removeEventListener(MouseEvent.MOUSE_UP, stopDragVolume);
        }

    }

}