apicloud,aliyunlive,测试成功

简介:

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


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6599906.html,如需转载请自行联系原作者

相关文章
|
7月前
|
前端开发 开发者
移动端-------app开发02,了解apicloud功能和使用,真机测试
移动端-------app开发02,了解apicloud功能和使用,真机测试
|
1月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
7天前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
51 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
5天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
29 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
1月前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
1月前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
2月前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
135 11
|
3月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
92 3
|
4月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
110 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
5月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
311 7
Jmeter实现WebSocket协议的接口测试方法

热门文章

最新文章