您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
tiktok推流碼(怎樣在切入切出虛擬攝像頭時營造卡頓效果)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-09 00:44:36【】8人已围观
简介Tiktok開直播系統不推流,沒流量怎么辦?Tiktok直播最重要的時還是網絡,網絡不純凈,卡頓,延時大,系統是不會推薦的用一下OgLive直播間,線路穩定,低延時不卡頓tiktok是什么意思Tikt
Tiktok開直播系統不推流,沒流量怎么辦?
Tiktok直播最重要的時還是網絡,網絡不純凈,卡頓,延時大,系統是不會推薦的
用一下OgLive直播間,線路穩定,低延時不卡頓
tik tok是什么意思
Tiktok是什么,適不適合做?
TikTok其實就是海外版的抖音,而且是3年前的抖音,其核心玩法與產品邏輯,和我們熟悉的抖音都基本相似。
正因為TikTok和抖音的相似性,給了我們很多想象和可操作的機會。
抖音的各種運營策略和商業模式不斷被研究出來。而這些策略和模式,對于TikTok,也同樣適用。
不管是流量,還是變現,短視頻(抖音/TikTok)不斷展示出其產品模式該有的優越性和霸氣。
當新的機會出現時,你會猶豫,這會不會不適合我?
但你忽視了“新”也意味著,所有人都是第一次接觸,都處于同一起跑線。大家都是平等的。
此時,相對來說,越早進入這個領域的人,越有先發優勢,錯過了3年前的抖音,難道還要錯過TikTok第一波市場紅利嗎?互聯網入口和用戶注意力的遷移,正帶來海量低成本精準流量。
運營TikTok需要哪些準備?
我們發現,TikTok的下載和注冊往往就可以難倒80%的外貿人,有了充分的基礎準備,后續自然就會簡單很多,比如:
step1: 前期準備
一部單獨的運營手機(建議蘋果6以上)
一個海外的APPLEID賬號(注冊一個新海外ID)
一張海外手機卡(無卡:手機偽裝100%真實)
有出海線路(梯子)
需要Gmail郵箱(前期不建議用其他社媒賬號綁定)
Step2:如何安裝(以蘋果手機為例)
重置手機
手機初始化:根據目標市場和海外通道出口IP地址,選擇對應信息匹配設定,如:國家、區域、語言、時區、輸入法等
重置廣告識別碼
不要裝國內APP
TikTok有哪些變現玩法?1. 可以展示自己的產品,讓客戶聯系到你,或者獲取到客戶的聯系方式,做傳統外貿生意。
2. 可以電商帶貨,現在TikTok已經開通小黃車功能了,可以在視頻中添加跳轉到Shopify和Teespring的鏈接,直接就可以帶產品。
3. 接廣告,粉絲多了,就有廣告需求,比如:使用廣告主指定的音樂做背景,或是廣告主要求上傳或拍攝一個帶品牌露出的作品。
……
TikTok新功能發布01 美國區域dou+上線
TikTok美區開放了dou+功能,目前只有部分用戶有開通dou+的功能,dou+仍然屬于內測階段。
目前并不是對所有人開放。美區dou+功能的開通,意味著TikTok商業化進程又向前邁出一大步。
02視頻合輯 功能開通
TikTok在3月下旬開始和部分創作者合作,推出一項播放列表新功能——視頻合輯,創作者能通過合輯功能將自己TikTok賬號內的視頻按不同主題自行分類,分為若干合輯。
用戶根據自己的需要和喜好對合輯命名,在創建合輯后,選中的視頻就會出現在創作者的個人資料下方,方便粉絲查找和觀看。
合輯功能的推出,有助于幫助創作者提高TikTok視頻的曝光率和互動率,連載性質的視頻內容,上一個視頻播放完自動切入下一個視頻。延長觀眾的參與時間,增強用戶黏度,有利于建立更牢固的聯系。
03 無人直播
無人直播是指非實時直播,是通過技術手段播放短視頻來代替直播推流。無人直播本質上不是直播而是一段通過剪輯合成的視頻,所以無人直播只要被官方發現,就難逃被封禁的命運。
然而TikTok平臺官方對于無人直播的管控并不嚴格,無人直播只要做好賬號粉絲數量,選好品,再配合針對性的直播素材,可以實現很不錯的佛系出單模式。
無人直播邊際成本極低,人力成本也不高,因此當下把握住TikTok疏于管控的風口更為重要。
04 新增特效功能 畫面逼真
不愿錯過短視頻機會的你,趕緊行動起來吧!
如何在電腦上抖音直播
首先在手機上打開抖音app,點擊中間的+號,選擇開始直播,然后復制此次直播的推流地址,再使用電腦,打開obs軟件,按照自己的需求設置好參數,然后點擊流菜單,選擇自定義流媒體服務器,最后再把剛才的地址復制進去就可以了。抖音直播幾乎成了每個網絡達人的標配,今天就一起聊聊如何在電腦上開直播。不僅是抖音,頭條系的抖音、火山、西瓜都可以。
短視頻運營實時更新
鏈接:買粉絲s://pan..買粉絲/s/1ceM1UDY9P8K13t68BdIyYA ?pwd=2D72
提取碼:2D72
資源包含:短視頻帶貨好物分享實操、剪映教程完整版 5980大藍線下課 陳廠長最新全套課 短視頻拍攝穩定器課程 抖音解封話術 抖音小店低成本引流500單總結 快手短視頻爆粉變現 零基礎學航拍 2022開課吧透透糖:短視頻帶貨爆單實戰營 修龍抖音房產 零基礎短視頻運營策劃教程 張sir豆莢運營 .莽哥·餐飲實體店引流課程 孫曉迪職業導演核心課 群響 IP06期 短視頻編導先導課(文案公式+三個表格推導) 朋友圈收費138元的抖音最新搬運技術 抖音變現+抖音新項目+信息換金術,三套合集【無水印】 【安心】口播入門與技巧課—從小白到高手 有了表現力咋拍都能火的短視頻表演課 七天陪跑系統實戰課【完結】 從0開始學習劇本殺 等
七大社交營銷渠道&渠道特征
隨著海外社交媒體的持續增長和越來越多的品牌的不斷更新,一個好的產品擁有一個好的營銷策略才能立足于市場,本文通過對七大類海外社交媒體展開討論,幫助跨境業務的營銷人了解和掌握社交營銷渠道的特征
去年,海外社交媒體的持續增長和創新為品牌帶來了新的功能、內容格式和動態創意能力,旨在拉近品牌與客戶的距離
對于負責跨境業務的市場營銷人來說,一個成功的營銷策略包括以一種引人注目的方式吸引目標受眾,并在短暫的時間里抓住他們的注意力
Facebook和Snapchat推出了新的沉浸式營銷場景,包括利用增強現實技術
Pinterest和Instagram增強了購物功能
機器學習的應用,也為越來越多的平臺提供了強大的支持
以下將就跨境營銷場景下,會采用的七大類海外社交媒體展開討論
一、Facebook1
“信使號”的廣告Facebook最初在2016年推出了Messenger廣告,但該廣告產品后來經歷了一系列升級和改進,這將使其在2020年成為一個有價值的渠道
Messenger廣告與其他Facebook平臺上的廣告一樣,可以自動將廣告發送到最有可能以最低成本推動競選結果的位置
部分廣告客戶可以在Messenger上使用與Facebook和Instagram相同的創意
觀眾將在他們的Messenger應用程序的聊天標簽中看到這些廣告
當他們點擊廣告時,他們將被發送到Messenger中的一個詳細視圖,并帶有一個呼叫操作,該操作將把他們帶到廣告創建期間您選擇的目的地——無論是您的站點、應用程序,還是與您的業務對話
點擊Messenger廣告
去年10月,Facebook發布了一項新功能,允許廣告客戶使用故事廣告在Messenger上發起對話
用戶無需離開自己所在的應用程序,就可以在Messenger上點擊帶有“發送消息”(SendMessage)功能的故事廣告,與商家展開對話
對于那些有多個Facebook應用程序連接到Messenger平臺的企業,該公司可以更容易地選擇他們想要使用哪個應用程序來點擊Messenger廣告
隨著社交平臺和使用模式趨向于更加個性化的信息傳遞體驗,專注于與消費者一對一交流的品牌將在競爭中占據優勢,并更有可能吸引忠實的追隨者
2
即時體驗廣告這些全屏幕廣告以前被稱為Canvas廣告,它們可以即時加載,并對移動設備進行了優化,旨在吸引觀眾的全部注意力
在即時體驗中,用戶可以觀看吸引人的視頻和照片,并在一個單一的廣告體驗中探索帶有標簽產品的生活方式圖像
Facebook去年還在廣告管理器中增加了即時體驗的新指標:即時體驗點擊打開、即時體驗點擊啟動、即時體驗點擊出站
3
動態廣告格式動態廣告于2019年推出,是Facebook的機器學習廣告部門,根據用戶最可能響應的廣告類型,向每個用戶提供個性化的廣告版本
該格式可用于任何使用目錄銷售、流量和轉換目標的活動
根據Facebook的一項測試,動態廣告在增加的ROI方面平均提高了34%,在提升方面提高了10%,在每增加一次的購買上降低了6%的成本
4
創造者工作室Facebook最初在2018年推出了CreatorStudio,作為出版商和創作者管理視頻內容的集中中心
在2019年,該工具經歷了一系列的更新和改進,以幫助支持品牌和合作的貨幣化努力
對CreatorStudio的增強包括一個專門的貨幣化概述部分、新用戶和用戶留存洞察,以及從CreatorStudio內部管理Instagram帖子和IGTV的能力
這個工具本身為營銷人員提供了一個一站式的發布、安排發布、管理、貨幣化和衡量Facebook頁面和Instagram賬戶內容的平臺
頁面管理員可以通過CreatorStudio提前6個月在Instagram平臺上安排視頻內容,Facebook報道稱,它正在為發布到InstagramFeed和IGTV上的視頻開發新的起草功能
創作者工作室很可能會繼續推出更新,以支持個人和品牌在Facebook上管理內容視頻
5
群組在過去幾年里,Facebook一直在努力加強其社區驅動的群組功能:在2017年向品牌和出版商開放,并為群組創建者提供一套專門的設置和工具
到2018年7月,Facebook推出了面向所有群組的“觀看派對”(WatchParty),這是一項視頻功能,允許多個用戶同時在一個Facebook群組中觀看和評論同一段視頻
在接下來的一個月里,Facebook向有限的幾個群體開放了Pixel廣告,并表示計劃在未來幾周內進行更廣泛的推廣
當Facebook在2019年初宣布將把“群組”作為其平臺的核心關注點時,這并不令人意外——在對Groups標簽進行重新設計和添加新功能后,FacebookGroups在2019年實現了巨大的增長,用戶可以更容易地發現更多相關內容
Groups選項卡現在顯示跨所有組的個性化活動提要,而Dis買粉絲very工具則推薦經過改進的建議,使用戶能夠快速找到感興趣的組
Facebook群組為那些愿意花時間和精力通過該平臺建立社區的品牌提供了一個機會
二、Instagram1
故事廣告自Instagram首次推出故事廣告以來,已經過去了兩年多的時間,這種廣告模式對公司來說是一個巨大的勝利
Facebook首席執行官馬克·扎克伯格(MarkZuckerberg)稱,有300多萬廣告商在Instagram、Facebook和Messenger上投放故事廣告
此外,根據Kenshoo的一份報告,2019年第二季度,InstagramStory廣告占該平臺廣告支出的近20%
故事廣告表現良好并不奇怪——據Instagram報道,有5億用戶在其平臺上使用故事
三分之一最受關注的新聞來自企業,五分之一的新聞來自觀眾的直接信息
2
Shoppable推流Instagram在2019年3月首次推出了收銀功能,這讓在線零售商與顧客之間的聯系更加無縫
該功能允許用戶在不離開應用程序的情況下通過Feed流或故事內容進行購買
它可以與Instagram上的購物功能配合使用,讓商家可以在每張圖片上標記最多5種商品
這些標簽包含了產品的細節和價格,為購物者提供了一條更順暢的購物體驗,并且品牌能夠創造性地展示可購物的產品
為了創建可購物的帖子,企業需要創建一個Facebook商店賬戶來鏈接到Instagram
3
IGTV2018年,Instagram推出了IGTV,作為觀看和創作長篇視頻內容的中心,與Instagram平臺直接相連
與InstagramStories不同,后者在24小時后就消失了,IGTV內容在平臺上占據了永久的位置,提供長達一小時的視頻錄制能力
雖然IGTV有一個獨立的應用程序,但大多數用戶通過IGTV標簽或“Explore”標簽訪問Instagram,根據Instagram的數據,每月有超過5億用戶訪問這個標簽
三、Twitter1
隱藏對Tweets的回復去年11月,Twitter開始測試用戶隱藏推文回復的能力,目的是讓用戶更好地控制對話
用戶可以選擇隱藏對他們創建的Tweet的回復
然而,用戶依舊可以通過在推特的下拉菜單中選擇“查看隱藏回復”選項來查看和處理隱藏回復
對于品牌來說,隱藏推文回復的能力可以幫助他們更好地控制他們的合作內容
2
新的列表功能推特長期存在的功能在2019年經歷了一系列升級,包括一個新的列表外觀(得益于該平臺在7月的重新設計),可以跟隨特定主題作為列表的選項,以及在移動應用程序上為列表添加一個快捷選項卡
Twitter表示,它計劃在2020年繼續改善列表——這表明該功能正成為Twitter社交服務的核心組成部分
對于營銷人員來說,改進后的列表功能提供了構建和參與內容提要的能力,內容提要是由特定的主題或興趣創建的
Twitter上的品牌可以使用列表來策劃社區主導的對話,密切關注競爭對手,并隨時了解行業最新趨勢
3
聚焦視頻廣告2018年4月,Twitter將超過一半的廣告收入歸功于視頻廣告
在2019年,Twitter報告稱視頻廣告格式依舊是其增長最快的廣告格式
Twitter在8月份推出了一個新的視頻廣告競價選項,讓廣告客戶可以選擇播放最長15秒的視頻廣告,并且只需要為整個6秒的廣告付費
Twitter稱其為“對于那些關心完整視圖指標,但又準備開發針對Feed內查看優化的短表單資產的廣告客戶來說,是一個靈活的選擇
”該平臺還確保創作者和發布者能夠通過新工具和新產品最大限度地提高視頻效果,以幫助提高性能
其推出的“時間就是一切”(TimingisEverything)工具可以顯示用戶觀看賬戶視頻的累計時間
2019年,這對媒體合作伙伴在Twitter上努力工作,為新聞、科技、政治、音樂和體育創作視頻內容——所有這些都旨在吸引廣泛的品牌
四、Snapchat1
增強現實(AR)Snap一直是社交平臺領域的AR領導者,促使市場營銷人員將AR納入自己的戰略
在今年4月的年度合作伙伴峰會上,Snapchat推出了重大的創意更新,以支持新的AR體驗
該公司引入了增強的AR功能,包括動態掃描、改進的移動跟蹤、通過LensStudio的交互式模板、地標操作和對象掃描
到2019年10月,該公司報告稱,其日常活躍用戶(DAU)平均每天與AR功能交互近30次
如果這還不足以激起你對該平臺增強現實功能的興趣,那么Snapchat已經收購了電腦視覺初創公司AIFactory,后者是Snapchat最近推出的“Cameos”視頻模式的合作伙伴
人工智能工廠技術可能會被用于為Snapchat用戶和營銷人員開發更多互動功能和創意工具
派拉蒙電影公司(ParamountPicture)最近推出了一項由AR驅動的UGC活動,內容包括Snapchat的浮雕照片
隨著增強現實技術變得更加成熟,先發品牌將在推動與觀眾更深入接觸方面向前邁出一步
2
動態廣告與Facebook、谷歌和Pinterest的動態廣告功能一樣,Snapchat的動態廣告選項減少了創建和維護產品廣告的時間和精力
2019年10月,Snapchat開始測試動態格式,這種格式可以自動創建和更新產品廣告,并在應用程序上運行
動態廣告可以在零售、電子商務和DTC品牌的廣泛模板中上傳他們的產品目錄到平臺上
隨著產品細節如價格或可用性的更新,動態廣告也隨之調整
Snapchat的動態廣告為該平臺提供了擠入社交商務廣告預算的空間,這些廣告預算主要分配給了Facebook和Instagram
對于瞄準年輕受眾的商業廣告商來說,Snapchat的動態廣告尤其具有吸引力,因為在13歲至34歲的用戶中,GenZ和千禧一代占了75%以上
五、YouTube1
原創內容19年5月,YouTube取消了針對原創內容的付費墻,使YouTube原創系列、電影和現場活動免費,并向所有觀眾提供廣告
不久之后,IAB報告稱,2019年數字視頻廣告支出的一半以上將來自以原創內容為特色的視頻廣告
毫無疑問,視頻是一種非常有效的形式,但廣告客戶也應該接受這樣一種理念,即創造原創視頻內容,以迎合其品牌受眾的各種興趣
撇開YouTube不談,該行業對原創內容的持續投資證明,為對品牌產品感興趣的消費者提供更深層次的價值
2
15秒Non-Skippable廣告在2019年初,YouTube向所有廣告商提供了15秒的不可跳過的視頻廣告
在此之前,廣告部門只對通過YouTube預訂流程及其優質谷歌首選網絡購買廣告客戶開放
除了經典的TruView廣告單元外,購買傳統的、不可跳過的廣告對于品牌推廣和廣告受眾來說也是很有價值的,對于那些想要重新利用為電視和其他不可跳過的環境設計的現有創意的廣告商來說也是如此
隨著越來越多的觀眾轉向大屏幕電視,通過YouTube和其他服務觀看流媒體內容,不可跳過的廣告單元為廣告客戶提供了一條簡單的途徑,讓他們能夠從客廳直接瞄準目標受眾
3
智能化廣告工具為了讓廣告更容易、更容易被更廣泛的廣告主看到,YouTube去年推出了一系列機器學習工具來做到這一點
谷歌使YouTube上的廣告商可以使用Dis買粉絲very廣告目錄(出現在谷歌提要環境中的原生廣告)
通過發現廣告單元,廣告主可以上傳個人創意資產,然后谷歌使用這些創意資產根據期望的結果大量制作廣告組合
YouTube還推出了一款名為碰碰車的智能視頻廣告編輯工具,對機器學習進行了測試
該工具自動創建六秒緩沖廣告從現有的視頻廣告運行90秒或更少
它在較長的視頻中識別結構良好的剪輯,并將其轉換成多個6秒的視頻廣告
對于資源有限的廣告主來說,YouTube對直觀、自選廣告工具的持續投資,使其更容易在平臺上創建和部署視覺廣告活動
六、Pinterest1
該工具使平臺能夠根據用戶搜索或保存的圖像中的所有對象的上下文和屬性來推薦時尚和家居裝飾產品
2
目錄19年3月,Pinterest宣布了一種展示產品的新方式,推出了產品目錄,允許品牌上傳多個產品圖片,按類別組織產品,并將圖片轉化為動態產品圖釘(DynamicProctPins)
“商品目錄”讓商家可以在網站上創建完整的產品目錄,只要他們在Pinterest上申請了一個域名
然后可以使用目錄批量生成產品Pins,并按產品組組織Pins
3
自助購物的廣告Pinterest在19年8月份通過AdsManager發布了購物廣告,讓廣告客戶能夠通過自助界面發起購物活動
通過購物廣告,營銷人員還可以在“ShoptheLook”貼子上標記產品,創建可購物的產品識別碼
該公司表示,這種廣告形式的靈感來自于其有機商店TheLookPins,該商店于2018年推出,讓商家能夠在一張圖片中標記多達25件商品
七、TikTok1
電子商務功能在2019年開始測試可購物的視頻帖子,使得平臺上的有影響力的人可以在帖子中放置社交商務買粉絲
去年11月,TikTok向《廣告周刊》(Adweek)正式確認了這一測試,但沒有透露何時會擴大測試范圍的細節
到2020年,廣告客戶應該意識到,TikTok將迎來電子商務機遇,并且應該考慮,該平臺短暫的內容模式是否對該品牌的零售消費者有價值
TikTok在全球擁有超過5億用戶,對于Z世代的消費者來說,它在很大程度上仍是一個尚未開發的電子商務市場,但這種情況可能不會持續太久
2
短視頻內容關于TikTok的內容模式:創建可復制、形式簡短的內容
傳統的視頻內容需要大量的制作工作,而短視頻形式卻沒有這個要求——這意味著品牌可以很容易地為年輕觀眾創造出低成本、高價值、有娛樂角度的內容
雖然TikTok并不是第一個通過短時間的視頻創作而獲得商業模式成功的應用程序,但該應用程序在過去一年中取得了巨大的增長——全球下載量達15億次
這使得TikTok成為19年度下載次數第三多的非游戲類應用,在美國本土僅次于WhatsApp(7
07億次安裝)和Messenger(6
36億次安裝)
它的下載量高于Facebook(5
87億次)和Instagram(3
76億次)
隨著TikTok在美國的業務持續增長社交媒體營銷人員應該為下一波短視頻內容做好準備
3
SDK是該公司在TikTokforDevelopersProgram中推出的第一個工具包
該SDK包含了幫助第三方應用程序和開發者與TikTok集成的工具,允許用戶簡單地從他們喜歡的應用程序的編輯面板“TikTok”
TikTok將AdobePremiereRush指定為最初的集成合作伙伴,使用戶能夠使用Adobe的豐富功能進行編輯并立即與TikTok共享
怎樣在切入切出虛擬攝像頭時營造卡頓效果
背景介紹:本人原先是android逆向工程師,后來因為工作變動,離開了協議分析這類的崗位,目前在做直播機與第三方應用兼容性分析相關分析,所以就有了這篇兼容性分析文章。
問題:tiktok在我們推流設備直播時,經過幾個特定步驟后切換前后置攝像頭會出現卡住的問題。
現象:直播畫面卡住不動了。
解決思路:找到點擊切換按鈕后的點擊事件回調,找到切換攝像頭的核心邏輯,來找到卡住原因。
1、如果了解ART虛擬機的同學會知道,jni函數和java函數都會調用到art虛擬機ArtMethod的Invoke函數。

輸出日志:
find target method: android.view.View.performClick
ArtMethod Invoke【22955】: ; lr:0x4af78c; libart.so: android.view.View.performClick
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: java.lang.Enum.toString
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: X.Ggh.LIZ
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: java.util.LinkedHashMap.<init>
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: java.util.HashMap.putAll
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: java.util.HashMap.put
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: X.DED.LIZ
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: X.D5k.onClick
通過frida hook libart.so的ArtMethod的Invoke函數,我們找到了點擊事件的回調類X.D5k.

找到這個類對應的onClick函數后,我對整個流程做個簡單的研讀,感覺發現了核心代碼在注釋直播流處理。

跟著核心代碼一路往下找到LiveCore這應該就是直播的核心代碼,其實現類為LiveCoreImpl,ILiveStream的實現類為LiveStream。


發現此處只是做了日志信息的合成和應用鏡像之類的代碼,但是又找到一個核心的類LiveStreamVideoCapture。

追蹤到這里發現鏈路斷了,又湊巧通過frida打開tiktok卡死在啟動頁上,那么接下來使用Xposed繼續理流程。
上面的代碼雖然沒有追中到切換攝像頭的核心邏輯,但是我們找到了兩個核心邏輯的類LiveStreamVideoCapture和LiveCoreImpl,分別和直播視頻流控制直播核心流程控制相關,所以Xposed繼續走的時候以這兩個類為重點,那么此處就開始放大招了,hook這兩個類的所有函數,貼上代碼。注意這里使用的classloader是application的classloader。


日志太多了,這里通過shell命令setprop做了個日志控制。



然后找到CameraVideoCapturer類的tryDeliverFrame,這里是處理相機的視頻幀,感覺越來越接近真相了,繼續hook這個方法,然后發現相機切換卡住以后,這個方法也停止調用了,那么沒辦法,繼續往上找堆棧中run方法的調用調用處。

繼續hook。


找到這個類。

至此,熟悉相機開發的同學應該知道,這就是SurfaceTexture.setOnFrameAvailableListener后,相機的可用幀會回調到這個函數,切換相機后卡頓,可用幀也同時不回調。
接下來hook原生相機。



調用的是android.hardware.Camera,也就是camera1相關的api,切換卡頓的時候并沒有調用Camera.open函數。


首次開直播的時候調用了這兩個函數,點擊切換相機的時候并沒有調用,在X.HCF這個類里找到switchCamera函數,那么猜測首次開相機,和切換前后相機走的并不是同一個流程,因為這個bug只有在切換相機時才會出現,所以我們就不關注首次開相機的流程。


果然,切換相機的時候走了這個流程,這是又發現了LiveStreamVideoCapture這個核心類,那么簡單進去看看SwitchCaptureRunnable這個有沒有被創建。


經過測試,發現這個類只會被創建一次,而run方法每次切換都會被調用,而且卡住的情況下也會被調用,那么結合上面Camera.open卡住時沒有調用,可以大膽的猜測中間過程某個條件不滿足被return了。根據堆棧信息繼續往下找幾個關鍵點。


發現CameraVideoCapture里也有切換相機的流程,切一步步往下走,能調用到上面我們hook過的X.HCF的switchCamera,那么我們就看看這里的switchCamera有沒有調用吧。
•情況一:先滑動直播界面,再按home鍵,然后回到tiktok,再切換相機,此時status()函數返回1,走了后續Camera.open流程。


•情況二:先滑動界面,再切換相機,然后按home鍵,接著回到tiktok,最后切換相機,此時status()函數返回2,沒走后續Camera.open流程。

從日志看switchCamera兩種情況都走了,再結合switchCamera的源碼看,源碼里的status()函數的返回值決定了是否繼續往下調用切換相機的流程,很遺憾的是,兩種情況都出現了,而且都會卡住(為什么兩個status值會不一樣呢,這里先留個坑,最后來填)。這可把我難住了!
就在這時腦子突然開竅,既然畫面卡住,那么必然有錯誤信息回調,果然一搜索CameraVideoCapture這個核心類有onError函數,毫不猶豫hook它,發現每次出錯時,這個函數的錯誤碼都會報-421錯誤(截圖省略-421錯誤碼的測試過程)。


錯誤信息非常明確的告訴我們是因為相機不支持縮放,導致的打開相機失敗,那么至此相機卡住的直接原因找到了,但是還沒找到為什么特殊的操作流程后會卡住,而正常的操作不會。于是乎繼續跟著堆棧信息往上找。

發現走進了這里的流程,導致的相機進縮放流程,為了驗證猜想,我決定在這個函數調用前,把message里的what字段改成2,讓它不走這個流程,來看看是不是就不會導致界面卡住,于是就有了下面這段代碼。

經過這一番篡改,果真隨便怎么折騰,直播界面都不會卡住了。那么我只要找到那里給handler發送的這個message就應該離真想很近了。


然后找這個handler的sendMessage相關切message的what字段賦值為1的函數。

然后我找到了它,這個函數還和縮放相關,那就八九不離十了。


按之前的堆棧繼續hook,發現卡住的時候這些方法確實都走了,而正常的時候是不走的,那么在X.Dvc的LIZ繼續用拋堆棧大法。
得到如下兩種堆棧:
•X.DCM接收到了touch事件,然后交由X.DCc這個類進行手勢判斷,發現是需要執行縮放的手勢,于是執行了相機的縮放功能(由于我們業務原因需要隱藏底部NavigationBar,在Window底部上劃會顯示NavigationBar,上劃的手勢同時觸發了控件的以為需要執行相機縮放),但是我們的虛擬攝像頭又不支持縮放,導致打開相機失敗,畫面就卡在了之前相機拿到的最后一幀。

X.DCc類

X.DCO的invoke方法

•點擊tiktok的切換相機Button,觸發進入相機的縮放,這里就和我們之前的點擊事件聯系上了,紅框部分就是補上了之前沒關注但是最重要的相機縮放功能判斷部分。


至此,我們已經把相機卡住的直接原因和根本原因都找到了,先手勢再點擊切換相機觸發了進入相機縮放功能判斷流程,由于我們的虛擬相機不支持縮放,導致打開相機失敗,卡在相機的最后一幀(也可能是黑屏)。所以只要交付給framework組開發人員,讓他們支持相機縮放相關功能就可以了。
接下來來填前面留下的坑,為什么退到后臺會導致status函數的返回值不一樣?
我們回到CameraVideoCapturer類,看看這個status()函數到底是個什么鬼!

發現他是父類ExternalVideoCapturer的函數,而且就是返回個字段,那再看看他那里進行了賦值。

通過AndroidStudio自帶的字段讀寫索引功能,很容易找到父類里的start、stop和release函數,以及自身的onErrorOnHandler函數里(也就是我們之前拋-421錯誤堆棧的函數)。如果熟悉相機開發的同學應該知道,一般我們界面退到后臺會釋放相機,然后回到前臺重新打開。那么接下來我們把這幾個函數都hook一下,來驗證猜想。

這里我多hook了一個onCaptureStarted函數,這個函數會調用父類的onStart函數,想看看是否會有調了onCaptureStarted但是沒調父類的onStart的情況。然后還hook了CameraVideoCapturer自身重寫的onStart和父類ExternalVideoCapturer的onStart函數。
下面是剛打開直播時的日志,此時status=1。

•情況一:先滑動直播界面,再按home鍵,然后回到tiktok,再切換相機,此時status()函數返回1,走了后續Camera.open流程。
這是直播退到后臺時的調用,說明確實釋放掉了,但是又調用了父類的onStart函數,那么此時的應該為2的status又變回了1。

接下來回到前臺,此時一切正常status還是為1,而且重走了自身的onStart函數,相當于相機整個流程完全重開。

再接著切換相機第一次,這時的status還是為1,相機正常,緊接著我們發現了-421錯誤,發現又重走了父類的onStart函數,那么此時status還是1。

接下來切換相機畫面卡住了,但還是走了父類的onStart。


以上就是第一種情況,由于每次切換相機都會拋完-421錯誤后,再調用父類ExternalVideoCapturer的start函數來重置status,也就造成了能調用Camera.open但是畫面卡住的情況。
•情況二:先滑動界面,再切換相機,然后按home鍵,接著回到tiktok,最后切換相機,此時status()函數返回2,沒走后續Camera.open流程。
前面流程就不貼了,直接開后面的流程記錄。
退到后臺 status=1

回到前臺status=1

切換相機第一次,畫面正常status=1

切換相機第二次,在調用switchCamera之前先拋了一次-421的錯誤,導致status=2,然后switchCamera函數里判斷status為2就被return,沒有調用Camera.open函數,接下來也沒有更多函數來重置status的狀態,所以無論怎么切換相機,都無法執行到Camera.open(),除非tiktok退到后臺,再回到前臺。


以上就是第二鐘情況。
很赞哦!(1485)
相关文章
- 06 youtube下載器 apk文件是什么文件(如何查詢一個APP所執行的命令)
- 01 youtube官網中文版設置在哪里打開藍牙(Youtube 怎么設置中文字幕)
- 01 youtube官網中文版設置中文教程百度網盤(Youtube 怎么設置中文字幕)
- 06 youtube to mp3 get online(麻煩大家推薦一些好聽的英文歌)
- 06 youtube下載器 apk安裝程序是(三星啟動器下載安裝)
- 06 youtube windows 11 app download(mac系統下如何用迅雷)
- 01 youtube官網中文版設置在哪里找(教大家如何選擇少兒英語口語教材)
- 06 youtube下載官網手機定位在哪里調(今日頭條新手期怎么看自己選擇的領域?)
- 06 youtuber是什么時候開始準備(什么是Vlog)
- 01 youtube官網中文版設置可以起什么名字可愛(App Store上有哪些冷門但逆天的 App?)
热门文章
站长推荐
01 youtube官網中文版設置在線編輯圖片大小(常用的數據可視化軟件有哪些)
06 youtube.買粉絲.br site(幫忙翻譯一段IPHONE廣告)
01 youtube官網中文版設置中文版免費版(手機怎么進入pourhub官網?)
06 youtube.買粉絲 home 買粉絲(找一首英文快歌Don' you want your girlfriend 買粉絲 like you 一直在重復 don't you 什么什么的)
06 youtube下載安裝失敗無法移動對象(HTML5定稿了,為什么原生App世界將被顛覆)
06 youtube 買粉絲s music gospel songs south(介紹搖滾樂的英語短文)
01 youtube官網中文版設置密碼怎么設置密碼(請問我的ipad怎樣改成中文商店)
01 youtube官網中文版設置密碼鎖屏時間(為什么開了油管會員鎖屏還是暫停)