设为首页收藏本站

Scripts 学盟

 找回密码
 加入学盟

QQ登录

只需一步,快速开始

查看: 3264|回复: 4
打印 上一主题 下一主题

java+red5+flex完成视频直播[第一篇]——red5介绍以及安装 [复制链接]

Rank: 8Rank: 8

风雨相伴

跳转到指定楼层
1#
Snail 实名认证  发表于 2012-3-23 21:48:57 |只看该作者 |倒序浏览
本帖最后由 Snail 于 2012-3-26 13:23 编辑

Red5简介

Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流; 录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。Red5使用RSTP作为流媒体传输协议,在其自带的一些示例中演示了在线录制,flash流媒体播放,在线聊天,视频会议等一些基本功能。http://baike.baidu.com/view/993128.htm



Red5安装

安装Red5首先就是要下载了:http://www.red5.org/downloads/,官网中提供了安装版的和压缩版的,我下载的是压缩版的;因为我可以很容易的得到里面的事例,api等;


下载了Red5后,解压文件(结构如图):如图: 解压缩后的内容



常用方法

    ApplicationAdapter是客户端与red5连接的基础类:
        下面来介绍一下调用的顺序,和建立so的方法:
        第一步:
        Red5服务器启动后,开始加载,此时只能获取应用的SCOPE

  1. public boolean appStart(IScope arg0) {
  2.          this.createSharedObject(arg0, \\\\\\\\\\\\\\\"point\\\\\\\\\\\\\\\", true);
  3.          ISharedObject so = this.getSharedObject(arg0, \\\\\\\\\\\\\\\"point\\\\\\\\\\\\\\\");//建立一个so
  4.          if (so != null)
  5.                   so.addSharedObjectListener(new ShareObjectListener());
  6.          return true;
  7. }
复制代码
改方法中的ShareObjectListener监听器是一个需要实现ISharedObjectListener接口的类。这样就建立一个so了。

        第二步:

        响应连接处理,可获取当前connection的信息,并且可以接收客户端提供的参数
  1. public boolean appConnect(IConnection conn, Object[] params){
  2.          return true;
  3. }
复制代码
第三步:连接成功,此时可获取client信息和SCOPE信息
  1. public boolean appJoin(IClient client, IScope app){
  2.          return true;
  3. }
  4. @Override
  5. public boolean roomStart(IScope arg0) {
  6.          System.out.println(\\\\\\\\\\\\\\\" 启动roomStart\\\\\\\\\\\\\\\");
  7.          return true;
  8. }
复制代码
如果需要获取每一个room中的客户端连接。
  1. @Override

  2. public boolean roomConnect(IConnection arg2, Object[] arg1) {
  3.          IScope arg0 = arg2.getScope();
  4.          Set<IClient> i = arg0.getClients();
  5.          for (IClient c : i) {
  6.                   callClient(c.getConnections().iterator().next());
  7.          }
  8.          return true;
  9. }
  10. public void callClient(IConnection conn) {
  11.          if (conn instanceof IServiceCapableConnection) {
  12.                   IServiceCapableConnection sc = (IServiceCapableConnection) conn;
  13.                   sc.invoke(\\\\\\\\\\\\\\\"resultFun\\\\\\\\\\\\\\\",new Object[]{peopleArray},this);
  14.          }
  15. }
复制代码
最后一步:

        客户端浏览器关闭即退出应用。
  1. public void appDisconnect(IConnection conn) {
  2.          return;
  3. }
复制代码


分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0
命运的手,推我向前!何处是停歇!

管理员

超级大菜鸟

Rank: 9Rank: 9Rank: 9

2#
混混@普宁.中国 实名认证  发表于 2012-3-23 22:09:09 来自手机 |只看该作者
先膜拜一下

使用道具 举报

Rank: 8Rank: 8

3#
那个谁 发表于 2012-3-27 11:25:34 |只看该作者
搞Openfire那会 弄过Red5插件视频协议没写完。。。

使用道具 举报

Rank: 8Rank: 8

风雨相伴

4#
Snail 实名认证  发表于 2012-3-27 11:58:06 |只看该作者
那个谁 发表于 2012-3-27 11:25
搞Openfire那会 弄过Red5插件视频协议没写完。。。

命运的手,推我向前!何处是停歇!

使用道具 举报

管理员

超级大菜鸟

Rank: 9Rank: 9Rank: 9

5#
混混@普宁.中国 实名认证  发表于 2012-4-18 14:18:32 |只看该作者
我要看第2篇

使用道具 举报

您需要登录后才可以回帖 登录 | 加入学盟

手机版|Scripts 学盟   |

GMT+8, 2024-12-25 00:52 , Processed in 1.108593 second(s), 15 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部