基于Flex的实时H.264流转发平台之客户端(Web+Android)

接上一篇,基于Flex的实时H.264流转发平台的客户端采用Flex技术,使用Flash作为客户端连接RTMP协议的媒体流。

Web端的代码是两年前写的,基于Flex 3.6A SDK,可以在Windows、Linux以及Android4.0及以下版本的Android手机中运行。

考虑到Flash的Web插件已经不支持Android4.1及以上版本,所以高版本的Android终端改用AIR形式,采用Flex 4.6.0+Adobe AIR 3.1。

首先安装Adobe Flash Builder,最新的版本是4.7,可以直接去Adobe官网注册Adobe ID,下载试用版,可以免费试用60天,大概1个GB。

客户端的代码其实很简单,主要就是使用VideoDisplay控件连接Red5服务端提供的rtmp流。

WebH264D1Player.mxml的核心代码如下:

private var videoURL:String = "h264hwen";
private var connection:NetConnection;
private var stream:NetStream;

public function WatchVideo():void 
{
	if(connection!=null)
	{
		connection.close();
	}
	connection = new NetConnection();
	connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
	connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
	connection.connect("rtmp://192.168.0.105/live");
}

private function netStatusHandler(event:NetStatusEvent):void 
{
	switch (event.info.code) 
	{
		case "NetConnection.Connect.Success":
			connectStream();
			break;
		case "NetStream.Play.StreamNotFound":
			trace("Unable to locate video: " + videoURL);
			break;
	}
}

private function connectStream():void 
{
	var stream:NetStream = new NetStream(connection);
	stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
	stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
	var video:Video = new Video();
	video.width = 720;
	video.height = 576;
	video.attachNetStream(stream);
	stream.play(videoURL);
	sprct.addChild(video);
}

其中sprct是VideoDisplay控件的ID。

对于使用AIR形式编译的客户端,在新建项目时要选择新建Flex手机项目,目标平台选择Android,编写好代码后,点击项目->导出发行版,建议选择导出具有运行时绑定的应用程序,这样编译出的apk中自带运行时,不需要再另外下载安装,但是apk的体积也会变大


在数字签名中可以使用自己已有的.p12或.pfx格式的签名文件,也可以新创建一个签名文件


然后就可以编译出带有签名的apk文件了。

PC浏览器访问Web形式客户端以及Android运行AIR形式客户端的效果如下:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值