1.推流

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0">
<title>直播测试</title>
<link rel="stylesheet" type="text/css" href="../../css/aui.2.0.css" />
</head> <body style="overflow: hidden;"> <header class="aui-bar aui-bar-nav">
发起直播
</header> <script type="text/javascript" src="../../script/api.js"></script>
<script type="text/javascript" src="../../script/common.js"></script> <script>
var aliyunLive;
apiready = function () {
fix_status_bar();
aliyunLive = api.require('aliyunLive');
aliyunLive.configStream({
rect: {
x: 0,
y: 0,
w: 375,
h: 667
},
url: 'rtmp://video-center.alivecdn.com/yunlutong/test?vhost=live.yunlutong.com&auth_key=1490162678-0-0-0a084668d1f4b0eb1066a33c04c3bcf8',
bitRate: {
videoMaxBitRate: 1500 * 1000,
videoMinBitRate: 400 * 1000,
videoBitRate: 600 * 1000,
audioBitRate: 64 * 1000
},
fps: 20,
screenOrientation: 'vertical',
reconnectTimeout: 5,
videoResolution: '240P',
videoPreset: '1280*720',
cameraPosition: 'front',
waterMarkImage: {
path: '',
location: 'leftTop',
maginX: 20,
maginY: 20
},
fixed: true
},function(ret) {
startStream();
});
} // 增加连接状态监听
function addConnectStatusListener() {
aliyunLive.addConnectStatusListener(function(ret){
alert(JSON.stringify(ret));
});
} // 销毁推流,测试有效
function destroyStream() {
aliyunLive.destroyStream();
} // 转换摄像头,测试有效
function toggleCamera() {
aliyunLive.toggleCamera();
} // 设置美颜,测试有效
function setBeauty() {
aliyunLive.setBeauty({
beauty: 'on'
});
} // 设置静音
function setMute() {
aliyunLive.setMute({
mute: 'on'
});
} // 设置闪光灯,测试有效,对后置摄像头有效
function setFlash() {
aliyunLive.setFlash({
flash: 'on'
});
} // 停止推流
function stopStream() {
aliyunLive.stopStream(function(ret){
alert(JSON.stringify(ret));
});
} // 开始推流
function startStream() {
aliyunLive.startStream(function(ret){
alert(JSON.stringify(ret));
});
} </script> </body>
</html>

2.拉流

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0">
<title>直播测试</title>
<link rel="stylesheet" type="text/css" href="../../css/aui.2.0.css" />
</head> <body style="overflow: hidden;"> <header id="aui-header" class="aui-bar aui-bar-nav">
看直播
</header> <script type="text/javascript" src="../../script/api.js"></script>
<script type="text/javascript" src="../../script/common.js"></script>
<script type="text/javascript" src="../../script/jquery.min.js"></script>
<script>
var mediaPlayer;
apiready = function () {
fix_status_bar();
mediaPlayer = api.require('aliyunLive');
mediaPlayer.init({
rect: {
x: 0,
y: $("#aui-header").height(),
w: api.winWidth,
h: api.winHeight - $("#aui-header").height()
},
accessKeyId : 'xxxxx',
accessKeySecret : 'xxxxx',
businessId : 'yunlutong'
}, function(ret, err) {
prepareToPlay();
play();
}); } // 添加监听
function addEventListener() {
mediaPlayer.addEventListener(function(ret){
alert(JSON.stringify(ret));
});
} // 设置缓冲时长
function setMaxBufferDuration() {
mediaPlayer.setMaxBufferDuration({
duration:10000
});
} // 设置默认解码器,0硬件解码器,1软件解码器
function setDefaultDecoder() {
mediaPlayer.setDefaultDecoder({
type : 1
});
} // 视频缩放,0等比例缩放,1剪切缩放
function setVideoScalingMode() {
mediaPlayer.setVideoScalingMode({
mode : 1
});
} // 设置静音
function setMuteMode() {
mediaPlayer.setMuteMode({
isMute:true
});
} // 设置媒体类型
function setMediaType() {
var mediaPlayer = api.require('aliyunLive');
mediaPlayer.setMediaType({
type:0
});
} // 请求超时时间
function setTimeout() {
mediaPlayer.setTimeout({
timeout:5000
});
} // 获取视频高度
function getVideoHeight() {
mediaPlayer.getVideoHeight(function(ret){
if(ret){
alert("Video height : " + ret.height);
}
});
} // 获取视频宽度
function getVideoWidth() {
mediaPlayer.getVideoWidth(function(ret){
if(ret){
alert("Video width : " + ret.width);
}
});
} // 摧毁直播
function destroy() {
mediaPlayer.destroy();
} // 停止播放
function stop() {
mediaPlayer.stop();
} // 暂停
function pause() {
mediaPlayer.pause();
} // 播放
function play() {
mediaPlayer.play();
} // 准备播放
function prepareToPlay() {
mediaPlayer.prepareToPlay({
url:'http://live.yunlutong.com/yunlutong/test.m3u8?auth_key=1490164347-0-0-a19f94a4fcd8a033f6b778bedd48545c'
}, function(ret, err) {
if(ret && ret.status){
}
});
} </script> </body>
</html>

ps:

1.这里需要申请Access Key ID,Access Key Secret

2.配置好推流和拉流的url。

3.这里只是初步实现了视频直播的功能,具体的还是需要配合服务器,把直播列表的数据获取到,展示到app中。

最好能够支持用户发言,发送小礼物,或者查看在线人数,和观看视频的人数。这些都需要处理。

apicloud,aliyunlive,测试成功的更多相关文章

  1. phpunit测试成功 phpunit测试实践代码

    16:12 2015/12/8phpunit测试成功,代码写在www目录下,以类名命名代码文件,我的文件名为 ArrayTest.php,类名为ArrayTest,内部写了简单的测试代码:<?p ...

  2. 141029 V7 异步通知测试,15分钟循环代码重构,同步更新payInfo测试,支付成功timer测试成功说明

    支付成功之后的1分钟定时任务:测试成功. 2014-10-29 17:16:06,892 DEBUG [http-bio-8086-exec-1] org.springframework.web.se ...

  3. Winform中修改WebBrowser控件User-Agent的方法(已经测试成功)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  4. diy51单片机最小系统------从零件到51整体测试成功小白篇

    前言 因为现在网上资料很多,但是很多博主水平不一样,有很多时候,自己在网上找了很多资料,因为自己智商不够,有时候感觉很多关键性的东西没说清楚,导致解决不了问题.那现在就从一个小白的角度来记录自己做过的 ...

  5. Selenium HTMLTestRunner 执行测试成功但无法生成报告

    为什么用PyCharm或者Eclipse执行测试成功但无法生成HTMLTestRunner报告 最近遇到一些人问这样的问题: 他们的代码写的没问题,执行也成功了,但就是无法生成HTMLTestRunn ...

  6. Net Manager测试连接测试没有成功,用户权限问题,以管理员身份运行后测试成功

    Net Manager测试连接测试没有成功,截图如下:

  7. 用python开发了一个简单apache web服务端范例,在win10 + apache2.4.9 + python3.5 测试成功

    #!D:\Programs\Python\Python35-32\python.exe import cgi def htmlTop():     print("Content-type: ...

  8. delphi 三层架构简单例子(经测试成功)

    delphi 三层架构简单例子(经测试成功) 转载 2013年12月19日 09:48:57 1100 所谓三层: (1) 客户端 (2) 服务器端 (3) 数据库 在数据访问时,使得客户端必须通过服 ...

  9. 用PyCharm执行测试成功但无法生成HTMLTestRunner报告

    问题:代码写的没问题,执行也成功了,但就是无法生成HTMLTestRunner的报告 其实这是编辑器搞得鬼,编辑器为了方便用户执行测试,都有一项功能,可以用编辑器来调用unittest或者nose来执 ...

随机推荐

  1. CF451E Devu and Flowers (组合数学+容斥)

    题目大意:给你$n$个箱子,每个箱子里有$a_{i}$个花,你最多取$s$个花,求所有取花的方案,$n<=20$,$s<=1e14$,$a_{i}<=1e12$ 容斥入门题目 把取花 ...

  2. thinkphp5 编辑时 唯一验证 解决办法

    若定义了相关的验证规则,如: namespace app\seller\validate; use think\Validate; class Goodsmtag extends Validate { ...

  3. [置顶] Netty学习总结(1)——Netty入门介绍

    1.Netty是什么? Netty是一个基于JAVA NIO类库的异步通信框架,它的架构特点是:异步非阻塞.基于事件驱动.高性能.高可靠性和高可定制性. 2.使用Netty能够做什么? 开发异步.非阻 ...

  4. Android BlueDroid(二):BlueDroid蓝牙开启过程init

    关键词:bluedroid  initNative enableNative BTIF_TASK  BTU_TASKbt_hc_work_thread set_power  preload  GKI作 ...

  5. Getting Started with MongoDB (MongoDB Shell Edition)

    https://docs.mongodb.com/getting-started/shell/ Overview Welcome to the Getting Started with MongoDB ...

  6. Thinkphp5.0怎么加载css和js

    Thinkphp5.0怎么加载css和js 问题 http://localhost/手册上的那个{load href="/static/css/style.css" /} 读取不到 ...

  7. ThinkPHP5中find()和select()区别

    ThinkPHP5中find()和select()区别 读取数据是指读取数据表中的一行数据(或者关联数据),主要通过find方法完成,例如: 1 2 3 4 $User = M("User& ...

  8. Windows下使用python绘制caffe中.prototxt网络结构数据可视化

    准备工具: 1. 已编译好的pycaffe 2. Anaconda(python2.7) 3. graphviz 4. pydot  1. graphviz安装 graphviz是贝尔实验室开发的一个 ...

  9. MySql创建指定字符集的数据库

    以创建字符集为utf8的数据库为例: CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREAT ...

  10. display的几种常用取值

    display的取值有很多种,下面列出比较常用的几种取值,还有其它的少用的值没有列出来: 1.none 此元素不会被显示,并且不占据页面空间,这也是与visibility:hidden不同的地方,设置 ...