ytylive

来自于:开发者立即使用

模块接口

startVideo

概述

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:

  • 类型:字符串
  • 描述:推流服务器地址url

video_name:

  • 类型:字符串
  • 描述:推流实例名称,可加入推流密钥校验(使用用户名跟密码进行校验,防止恶意推流)

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. ret.status, //返回状态码 200为成功,其他为错误
  3. ret.message //错误码描述
  4. }

示例代码

  1. var ytylive = api.require('ytylive');
  2. var param = {
  3. video_url:"rtmp://XXX.XXX.XXX:1935/rtmplive",
  4. video_name:"applevideo?user=user&pass=pass"
  5. };
  6. ytylive.startVideo(param,callBack);
  7. function callBack(ret){
  8. console.log(JSON.stringify(ret));
  9. }

配置ATS(App Transport Security)

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

  1. NSAppTransportSecurity : Dictionary {
  2. NSAllowsArbitraryLoads : Boolean
  3. NSAllowsArbitraryLoadsForMedia : Boolean
  4. NSAllowsArbitraryLoadsInWebContent : Boolean
  5. NSAllowsLocalNetworking : Boolean
  6. NSExceptionDomains : Dictionary {
  7. <domain-name-string> : Dictionary {
  8. NSIncludesSubdomains : Boolean
  9. NSExceptionAllowsInsecureHTTPLoads : Boolean
  10. NSExceptionMinimumTLSVersion : String
  11. NSExceptionRequiresForwardSecrecy : Boolean
  12. NSRequiresCertificateTransparency : Boolean
  13. }
  14. }
  15. }

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请求

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5. <key>NSAppTransportSecurity</key>
  6. <dict>
  7. <key>NSAllowsArbitraryLoads</key>
  8. <false/>
  9. </dict>
  10. </dict>
  11. </plist>
  12. //开启ATS,为指定域名开放http请求
  13. <?xml version="1.0" encoding="UTF-8"?>
  14. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  15. <plist version="1.0">
  16. <dict>
  17. <key>NSAppTransportSecurity</key>
  18. <dict>
  19. <key>NSAllowsArbitraryLoads</key>
  20. <false/>
  21. <key>NSExceptionDomains</key>
  22. <dict>
  23. <key>localhost</key>
  24. <dict>
  25. <key>NSExceptionAllowsInsecureHTTPLoads</key>
  26. <true/>
  27. </dict>
  28. </dict>
  29. </dict>
  30. </dict>
  31. </plist>

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本