用NetStream的appendBytes播放FLV
2024-09-03 03:04:52
public class MiniStream extends Sprite
{
private var _buffer:ByteArray = new ByteArray();
private var _ns:NetStream;
private var _nc:NetConnection;
private var _video:Video;
private var _tc:Number = 0;
private var _ustream:URLStream;
private var _elapsed_bytes:uint = 0; public function MiniStream(onVideo:Function)
{
_video = new Video(400,300);
addChild(_video);
_ustream = new URLStream();
_ustream.addEventListener(IOErrorEvent.IO_ERROR, onErr);
_ustream.addEventListener(ProgressEvent.PROGRESS, onProgress); } public function play():void
{
_nc = new NetConnection();
_nc.connect(null); if(_ns)
{
_ns.removeEventListener(NetStatusEvent.NET_STATUS, onStatus);
}
_ns = new NetStream(_nc);
_ns.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
_ns.client = {};
_ns.bufferTime = 3;
_video.attachNetStream(_ns); _ns.play(null);
_ns.appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN);
_ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); _ustream.load("http://example.com/h264vid.flv");
} private function onStatus(e:NetStatusEvent):void
{
trace(e.info.code);
} private function onProgress(e:ProgressEvent):void
{
//stores in our BA buffer
_ustream.readBytes(_buffer,0,_ustream.bytesAvailable);
_buffer.position = 0;
if(_buffer.bytesAvailable > 0)
{
_ns.appendBytes(_buffer);
_elapsed_bytes += _buffer.length;
_buffer.clear();
}
} private function netStatusHandler(evt:NetStatusEvent):void {
if (evt.info.code == "NetStream.Play.Stop") {
_ns.appendBytesAction(NetStreamAppendBytesAction.END_SEQUENCE);
}
} private function onErr(e:IOErrorEvent):void
{
//trace("ERROR", e.text);
}
}
最新文章
- 我的MYSQL学习心得(十五) 日志
- iOS模态弹出半透明视图控制器
- SSL/TLS算法流程解析
- Zend Studio 中导出 PHP 语法颜色配置
- 你需要知道的三个 CSS3技巧(转)
- Android -- Drawable与Bitmap测试
- Unity3D研究院之IOS全自动打包生成ipa
- iphone UIScrollView缩放
- Php环境下载(PHPNow)安装
- Eclipse中为什么创建DynamicWebProject后没有默认的web.xml文件?
- Linux命令学习-useradd和usermod
- 下面那些是无效的Java标识符?
- 超详细Gitlab Runner环境配置中文教程
- python---wsgiref初探
- C++中关于new和delete的使用
- FactoryMethod工厂方法模式(创建型模式)
- JAVA 线程池入门事例
- IO多路复用的机制:select、poll、epoll
- MySQL Crash Course #05# Chapter 9. 10. 11. 12 正则.函数. API
- jenkins 定时构建 位置