rtmp (Real Time Media Protocal) ,是实时流媒体协议,由Adobe公司提出,属于半开放的协议。此协议基于flash平台的音视频点播协议。
音视的点播系统分为两部分,分别为客户端和服务端。在本文中我会先讲解如何实现一个简单的rtmp播放器。至于rtmp服务器的实现,会在下文中分析。
1)首先是开发和调试环境的搭建(adobe flash builder + adobe flash player plugin debug + chrome)
1.1)下载安装adobe flash builder,并安装
1.2)下载并安装chrome
1.3)下载并安装 adobe flash player 调试版的插件(adobe flash player plubin debug),
安装完后,由于chrome默认已安装了flash player的正式版,在些需要禁用默认安装的flash player,在chrome地址栏中输入chrome://plugins/会列出所有使用的插件,在些会发现有两个flash的插件,找到安装位置为“..../google/chrome/.."位置下的插件,并禁用它
2)现在我们已经搭好了开发环境,接下来,我们将用flash builder新建一个rtmp播放器的项目
2.1)打开flash builder,文件-》新建-》flex项目,弹出新建项目界面,设置一下项目名,项目位置以及应用程序类型,如下图所示:
接着直接点下一步,直到完成即可
2.2)新建ActionScript 类,类名为Rtmpplayer,包这里使用默认包
这个类主要是用来建立连接和netstream的建立
2.3)实现这个类的方法和接口,主要的思路:第一步建立连接
var nc:NetConnection;
nc = new NetConnection();
nc.connect(stream_path);
并且监听这相新建连接的状态:
nc.addEventListener(NetStatusEvent.NET_STATUS,ConnectStatusHandle);
当我们连接成功后,即收到
"NetConnection.Connect.Success"
状态时,就可以创建网络流,并点播它
完整的代码如下所示:
//rtmpplayer.as
package
{
import
flash.events.NetStatusEvent;
import
flash.events.StatusEvent;
import
flash.media.Video;
import
flash.net.NetConnection;
import
flash.net.NetStream;
public
class
RtmpPlayer
extends
Video
{
private
var
nc:NetConnection;
private
var
ns:NetStream;
public
var
stream_path:String =
"rtmp://192.168.1.88:1935"
;
public
var
stream_name:String =
"test.264"
;