【小(xiǎo)編推薦】​app開(kāiλφ)發中的(de)直播功能(néng)開(kāi)發

2017-10-28   |&nbs™™ ↔p;  發布者:&nbs★™£p;  |  ∞÷∑↕ 查看(kàn):3320次

app開(kāi)發
app開(kāi)發中使用(yòng) 直播功能(néng)開(×&kāi)發

概述

ytylive模塊為(wèi)開(kāi)發者提供rtmp視(shì)頻♣β$&(pín)直播流的(de)推流功能(néng),通(tōng)過此模塊可(kě₽✘€)以實現(xiàn)視(shì)頻(pín)直播的(de)推流✘∞‍×,推流地(dì)址video_url,推流名稱vide≈α±♥o_name可(kě)以自(zì)行(xíng)配置,可(k₹♠₹ě)以使用(yòng)第三方直播平台的(de)推 φ流地(dì)址,也(yě)可(kě)以用(yòng)戶自(zì₹★•ε)己搭建直播服務器(qì)的(de)地(dì)址。

模塊中有(yǒu)開(kāi)始推流的(deπ¥↓)按鈕,點擊按鈕開(kāi)始推流,按鈕狀态α Ω¥改變,再次點擊則停止推流。

直播播放(fàng)的(de)url需要(>↓yào)第三方平台提供,自(zì)建直播服務器(qì)₽ ☆'的(de)需要(yào)用(yòng)戶自(zì)己配置,本模塊 ↓≈隻有(yǒu)推流功能(néng),其他(tā)功能(néng)不(bù)涉及≈↓。

iOS系統支持多(duō)種實時(shí)濾鏡效果 (Gray、Iλ™✘'nvertColors、Sepia、Fisheye、≈↔βGlow、GaussionBlur)。



startVideo

開(kāi)始視(shì)頻(pín)推流,videoγ∞_url為(wèi)推地(dì)址url,v®ε≤↔ideo_name為(wèi)推流實例名稱×§♦↑,如(rú)果使用(yòng)第三方推流服務,則推流地(dì)址跟推流實例名稱β  需要(yào)到(dào)第三方平台獲取,如$☆(rú)果自(zì)建直播服務器(qì),則使用(yòng)自(zì)÷♦建服務器(qì)的(de)推流地(dì)址跟實例名稱。

startVideo(params,callbac©≠σk(ret))

params

video_url:

video_name:

callback(ret)

ret:

{    ret¥↔↑.status, //返回狀态碼 200為(wèi₽↕↔♥)成功,其他(tā)為(wèi)錯(cuò)誤&nb✔≥£sp;   ret★♣ .message //錯(cuò)誤碼描述
}

示例代碼

var ytylive =&nb§  sp;api.require('yλ✔≥tylive');var param σδ= {
    vi∑₽↔>deo_url:"rtmp://XXX.XXX.XXX:→φ★1935/rtmplive",
   λ↓α€; video_name:"applevi">‌≈deo?user=user&pass=pass&quo£€✘t;};

ytylive.startλ∑α→Video(param,callBack);funct¥∞∏≤ion callBack(ret){
  δ‌$   console.log(§• JSON.stringify(ret));
δβ≥
}

配置ATS(App Transport ‌βλ₹Security)

蘋果官方文(wén)檔:https://developer.apple.co ₽m/library/content/documentation/Generλ♦¥al/Reference/InfoPlistK∞ eyReference/Articles/Coco§δaKeys.html#//apple_ref/doc/uid/TP4∑↔™♣0009251-SW33 以下(xià)是(shì)整個(gè)ATS配置的(de)結¥↔‍構:

NSAppTransportSecurity★ ♣ : Dictionary {
 &¶​nbsp;  NSAllowsArbitraryLo™©∏ads : Boolean
  δ∑¶;   NSAllowsArbitraryLoa÷‍dsForMedia : Bool€$ean
    NS&®βAllowsArbitraryLoadsInWebConteβ↑nt : Boolean
  &nb¥™sp; NSAllowsLocalNetworkin©§∞g : Boolea£Ω•n
    NSEx®ΩceptionDomains :↑Ωδ→ Dictionary { &nbsγπ$p;  <domain-nam≤π£e-string> :  >₹;Dictionary {
  §σ ;      NSβ€₽&IncludesSubdomains : B&γ♦®oolean
   &nbs±♦δ‍p;    NSExceptio÷φnAllowsInsecureHTTPLoads :♣§✘ Boolean
 ≤→≈   &n↓δ✔bsp;   NSExce$π✔ptionMinimumTLSVersion :&£®nbsp;String
    &←₹πnbsp;   ↔β;NSExceptionRequiresFo ₹‍rwardSecrecy :&nb ≈™sp;Boolean
   ♦';     NS€✔RequiresCertificateTransparenc∏€≈y : Boolean
 ₩÷©
     &nb £φsp;  }
  ↓<™  }
}

NSAllowsArbitraryLoads:

該字段對(duì)iOS9和(hé)iOS10都(dōu)有(yǒ♣✔u)效。如(rú)果設置為(wèi)tr₩♠​÷ue,所有(yǒu)的(de)ATS網絡連接限制€§π✔(zhì)将失效,除了(le)NSExce>β>ptionDomains字典裡(lǐ)面單獨→‌β§配置的(de),默認為(wèi)false。注意:設置為(wè÷$i)true後提交AppStore審核時(shí)需要(yào)理(l'☆ǐ)由。

NSAllowsArbitraryLoadsForMediaπ‌:

該字段隻在iOS10中有(yǒu)效。如(rú)果設置為(w ‍₹>èi)true,使用(yòng)AVFoundation框架加載媒≈∞≈'體(tǐ)數(shù)據将不(bù)受ATS限制(zhì)∑ ,但(dàn)是(shì)應用(yòng)剩餘的(d€λΩe)其它部分(fēn)網絡請(qǐng)求還(hái)是(shì)¶≠÷ 受ATS約束,默認為(wèi)false。注意:€φγ設置為(wèi)true後提交AppStore審核時(shí)需要(≤‍∞¥yào)理(lǐ)由。

NSAllowsArbitraryLoadsInWebContenφλ★t:

該字段隻在iOS10中有(yǒu)效。如(rú)果設置為(wèi)Ω¥' true,使用(yòng)webView加載網頁将不(bù)受AT≤§✘S限制(zhì),但(dàn)是(shìλ★)應用(yòng)剩餘的(de)其它部分(fēn)網絡請(qǐng)求 •β還(hái)是(shì)受ATS約束,默認為(wèi)false。注意βα‍:設置為(wèi)true後提交AppStore審核時(shí)需↓↑€&要(yào)理(lǐ)由。

NSAllowsLocalNetworking:

該字段隻在iOS10中有(yǒu)效。如(rú)果設←₩✔₽置為(wèi)true,允許加載本地(dì)  資源,但(dàn)是(shì)應用(yòng)剩餘的(de)其​÷∞它部分(fēn)網絡請(qǐng)求還(♥↑← hái)是(shì)受ATS約束,默認為¶§'(wèi)false。

NSExceptionDomains:

為(wèi)指定的(de)域名單獨配置A §&™TS,下(xià)面是(shì)其裡(lǐ)面的(de)子(zǐ)項$₩→λ各字段:

NSIncludesSubdomains:

如(rú)果設置為(wèi)true,ATS配置也(yě)将™'适用(yòng)于其所有(yǒu)的(d×↓e)子(zǐ)域名,默認為(wèi)false。

NSExceptionAllowsInsecureHT​α$TPLoads:

如(rú)果設置為(wèi)true,允許加載該域名的(π&de)http資源,默認為(wèi)false。注意:設置為(wèi)tru₽>e後提交AppStore審核時(shí)需要(yào)理(™γ∑lǐ)由。

NSExceptionMinimumTLSVersion:φ∞↑

指定連接時(shí)允許使用(yòng)的(de)最小(xi>'ǎo)的(de)TLS版本,默認值為(wε₹èi)TLSv1.2,取值範圍為(wèi)εδ₽₽:TLSv1.0、TLSv1.1、TLSv1.2。注意:使用§σε¶(yòng)該字段時(shí)提交AppStore審核時"↔(shí)需要(yào)理(lǐ)由。

NSExceptionRequiresForwardSecrecy:

如(rú)果設置為(wèi)false,将允許不(bù)支♣​♦≥持perfect forward secrecy (PFS)的(deλ )加密,默認為(wèi)true。

NSRequiresCertificateTrπ™δ€ansparency:

如(rú)果設置為(wèi)true,服務端需要(yào)具有(yα$"πǒu)有(yǒu)效的(de)Certificate"₩  Transparency,默認為(wèi)false。£→

開(kāi)啓ATS,不(bù)允許所有(yǒ✘₽σφu)http請(qǐng)求

<?xml versio↑​≠n="1.0" encoding="U♥<TF-8"?><!DOCTYPE Ω♥∏•plist PUBLIC ¶★×÷;"-//Apple//DTD £'<∞PLIST 1.0//EN" & ¥quot;http://www.apple.com/DTDs×σ£/PropertyList-1.0.dtd">&l$₹≠©t;plist version="↓$₩1.0"><dic←"​★t><key>NSAppTranspβ÷​ ortSecurity</key><di≠☆λct><key>NSAllowsA≠≥rbitraryLoads</key><false/÷>φ≥></dict></dict></plis♣£αt>//開(kāi)啓ATS,為(wèi)指定域名開(kāi)放≤←×(fàng)http請(qǐng)求<?∏♥xml version="1.0"&★₽nbsp;encoding="UTF-8"♣&¶∑?><!DOCTYPE σΩ‍plist PUBLIC <₽"-//Apple//DTD PL₹ε©IST 1.0//EN" &quσ★✔ot;http://www.apple.com/DTDs/ ↔≤PropertyList-1.0.dtd"><pl★"×ist version="1.0"><♣ ₹;dict><key>NSA♠εppTransportSecurity</‌§↔key><dict><k‌€σey>NSAllowsArbitraryLoads</key&<>gt;<false/><k♠☆β‌ey>NSExceptionDom‍©∏ains</key><dict>÷¶₹✘<key>localhost<"↕×/key><dict><∏×♥;key>NSExceptionAllowsInsec' ‌ureHTTPLoads</key><true/>&lσ≥×t;/dict></dict>&↓δ→lt;/dict></dict&g∑ t;</plist>

可(kě)用(yòng)性

iOS系統,Android系統

可(kě)提供的(de)1.0.0及更高(gāo)版本