【小编推荐】​app开发中的直播功能开发

2017-10-28   |   发布者:   |   查看:3320次

app开发
app开发中使用 直播功能开发

概述

ytylive模块为开发者提供rtmp视频直播流的推流功能,通过此模块可以实现视频直播的推流,推流地址video_url,推流名称video_name可以自行配置,可以使用第三方直播平台的推流地址,也可以用户自己搭建直播服务器的地址。

模块中有开始推流的按钮,点击按钮开始推流,按钮状态改变,再次点击则停止推流。

直播播放的url需要第三方平台提供,自建直播服务器的需要用户自己配置,本模块只有推流功能,其他功能不涉及。

iOS系统支持多种实时滤镜效果 (Gray、InvertColors、Sepia、Fisheye、Glow、GaussionBlur)。



startVideo

开始视频推流,video_url为推地址url,video_name为推流实例名称,如果使用第三方推流服务,则推流地址跟推流实例名称需要到第三方平台获取,如果自建直播服务器,则使用自建服务器的推流地址跟实例名称。

startVideo(params,callback(ret))

params

video_url:

video_name:

callback(ret)

ret:

{    ret.status, //返回状态码 200为成功,其他为错误    ret.message //错误码描述
}

示例代码

var ytylive = api.require('ytylive');var param = {
    video_url:"rtmp://XXX.XXX.XXX:1935/rtmplive",
    video_name:"applevideo?user=user&pass=pass"};

ytylive.startVideo(param,callBack);function callBack(ret){
    console.log(JSON.stringify(ret));
}

配置ATS(App Transport Security)

苹果官方文档:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33 以下是整个ATS配置的结构:

NSAppTransportSecurity : Dictionary {
    NSAllowsArbitraryLoads : Boolean
    NSAllowsArbitraryLoadsForMedia : Boolean
    NSAllowsArbitraryLoadsInWebContent : Boolean
    NSAllowsLocalNetworking : Boolean
    NSExceptionDomains : Dictionary {    <domain-name-string> : Dictionary {
        NSIncludesSubdomains : Boolean
        NSExceptionAllowsInsecureHTTPLoads : Boolean
        NSExceptionMinimumTLSVersion : String
        NSExceptionRequiresForwardSecrecy : Boolean
        NSRequiresCertificateTransparency : Boolean
        }
    }
}

NSAllowsArbitraryLoads:

该字段对iOS9和iOS10都有效。如果设置为true,所有的ATS网络连接限制将失效,除了NSExceptionDomains字典里面单独配置的,默认为false。注意:设置为true后提交AppStore审核时需要理由。

NSAllowsArbitraryLoadsForMedia:

该字段只在iOS10中有效。如果设置为true,使用AVFoundation框架加载媒体数据将不受ATS限制,但是应用剩余的其它部分网络请求还是受ATS约束,默认为false。注意:设置为true后提交AppStore审核时需要理由。

NSAllowsArbitraryLoadsInWebContent:

该字段只在iOS10中有效。如果设置为true,使用webView加载网页将不受ATS限制,但是应用剩余的其它部分网络请求还是受ATS约束,默认为false。注意:设置为true后提交AppStore审核时需要理由。

NSAllowsLocalNetworking:

该字段只在iOS10中有效。如果设置为true,允许加载本地资源,但是应用剩余的其它部分网络请求还是受ATS约束,默认为false。

NSExceptionDomains:

为指定的域名单独配置ATS,下面是其里面的子项各字段:

NSIncludesSubdomains:

如果设置为true,ATS配置也将适用于其所有的子域名,默认为false。

NSExceptionAllowsInsecureHTTPLoads:

如果设置为true,允许加载该域名的http资源,默认为false。注意:设置为true后提交AppStore审核时需要理由。

NSExceptionMinimumTLSVersion:

指定连接时允许使用的最小的TLS版本,默认值为TLSv1.2,取值范围为:TLSv1.0、TLSv1.1、TLSv1.2。注意:使用该字段时提交AppStore审核时需要理由。

NSExceptionRequiresForwardSecrecy:

如果设置为false,将允许不支持perfect forward secrecy (PFS)的加密,默认为true。

NSRequiresCertificateTransparency:

如果设置为true,服务端需要具有有效的Certificate Transparency,默认为false。

开启ATS,不允许所有http请求

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><false/></dict></dict></plist>//开启ATS,为指定域名开放http请求<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><false/><key>NSExceptionDomains</key><dict><key>localhost</key><dict><key>NSExceptionAllowsInsecureHTTPLoads</key><true/></dict></dict></dict></dict></plist>

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本