Hello i have some problem with a streaming with Flash Media Service
I have an hosting with influxis with 512 kbps.
this is my code:
package demo.videostream {
import flash.events.MouseEvent;
import flash.events.Event;
import com.services.position.utils.UtilsPosition;
import com.services.graphics.shape.KRectangle;
import flash.net.NetStream;
import flash.media.Video;
import flash.events.AsyncErrorEvent;
import flash.text.TextFieldAutoSize;
import flash.text.TextField;
import flash.events.NetStatusEvent;
import flash.net.NetConnection;
import flash.display.Sprite;
/**
*
*/
[SWF (width="1024",height="700",frameRate="31",backgroundColor="0xffffff")]
public class VideoApplication extends Sprite {
private var nc : NetConnection;
private var debug : TextField;
private var video : Video;
private var ns : NetStream;
private var background_video : KRectangle;
private var timer_txt : TextField;
private var original_video_width : int;
private var original_video_height : int;
private var original_txt : TextField;
private var bartime : KRectangle;
private var bartotal : KRectangle;
private var total_time : Number;
private var meta : Object;
private var customClient : Object;
private var _duration : Number;
private var _time : Number;
private var _percentage : Number;
public function VideoApplication() {
createApplication();
}
private function createApplication() : void {
//creo un debug
debug = new TextField();
debug.width = 400;
debug.autoSize = TextFieldAutoSize.LEFT;
debug.multiline = debug.wordWrap = true;
debug.text = "";
addChild(debug);
nc = new NetConnection();
nc.client = this;
nc.connect("********************");
nc.addEventListener(NetStatusEvent.NET_STATUS, onStatusConnect);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onErrorConnect);
}
private function onErrorConnect(event : AsyncErrorEvent) : void {
debug.text = event.error.errorID + " message: " + event.error.message;
}
private function onStatusConnect(event : NetStatusEvent) : void {
dbg("onStatusConnect: " + event.info.code);
switch(event.info.code) {
case "NetConnection.Connect.Success":
ns = new NetStream(nc);
ns.bufferTime= 4;
ns.addEventListener(NetStatusEvent.NET_STATUS, onStreamStatus);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onErrorStream);
ns.client = {};
ns.client.onMetaData = onMetaData;
createVideo();
ns.play("myvideo");
break;
}
}
private function onMetaData(meta : Object) : void {
duration= meta.duration;
}
private function dbg(str : *) : void {
debug.appendText("DBG: " + String(str) + "
");
debug.scrollV= debug.maxScrollV;
}
private function onErrorStream(event : AsyncErrorEvent) : void {
dbg("onErrorStream: " + event.error.message);
}
private function onStreamStatus(event : NetStatusEvent) : void {
dbg("onStreamStatus: " + event.info.code);
switch(event.info.code) {
case "NetStream.Play.Start":
break;
case "NetStream.Buffer.Full":
break;
}
}
private function createVideo() : void {
background_video = new KRectangle(0, 0, 700, 400, 0x999999);
addChild(background_video);
background_video.x = stage.stageWidth - background_video.width - 20;
background_video.y = 20;
video = new Video(400, 400);
video.x = 300;
video.deblocking= 3;
video.y = 20;
addChild(video);
video.attachNetStream(ns);
UtilsPosition.centerInterObject(video, background_video, true, true);
}
public function onBWDone() : void {
}
public function get duration() : Number {
return _duration;
}
public function set duration(duration : Number) : void {
_duration = duration;
}
public function get time() : Number {
return _time;
}
public function set time(time : Number) : void {
_time = time;
}
public function get percentage() : Number {
return _percentage;
}
public function set percentage(percentage : Number) : void {
_percentage = percentage;
}
The video start after buffering but every 10 second is stopped for other buffering…
I can’t publish this video player…
the video is about 27 mb