? ? ? ? unity3d項(xiàng)目中進(jìn)行錄屏操作参歹,用到的地方不少,特別是在游戲和AR的項(xiàng)目中,都會(huì)看到錄屏功能的使用肪笋。但是這個(gè)功能的解決方案卻很少。網(wǎng)上也基本都是一些小打小鬧的理論性文章度迂,沒(méi)有太多實(shí)際的意義藤乙。
? ? ? ? 小編我也是真的體會(huì)深刻,這個(gè)功能在當(dāng)初unity3d項(xiàng)目中給我?guī)Я艘蝗f(wàn)點(diǎn)傷害惭墓。當(dāng)時(shí)自己為了實(shí)現(xiàn)這個(gè)功能坛梁,可謂是千方百計(jì)絞盡腦汁,因?yàn)楹wIOS/Android原生開(kāi)發(fā)+NDK+GPU渲染等知識(shí)腊凶,所以難度略大划咐。好在最后終于自己開(kāi)發(fā)出來(lái)了,不說(shuō)了钧萍。
? ? ? ?本文也主要是對(duì)unity3d 錄屏功能插件工具 Cross Platform Replay Kit 進(jìn)行介紹和使用講解褐缠,該插件可以在移動(dòng)設(shè)備 iOS 和 Android?上輕松進(jìn)行屏幕錄制,可以在 Unity 上對(duì)你的游戲和其他你想要錄制的畫(huà)面輕松進(jìn)行屏幕錄制划煮。并保存到你的本地圖庫(kù)送丰。
直奔主題!3谇铩F黪铩!
1蟹略,導(dǎo)入插件
檢查插件所在路徑:
插件根目錄? :Assets/Plugins/VoxelBusters/CrossPlatformReplayKit
Demos案例場(chǎng)景 :Assets/Plugins/VoxelBusters/CrossPlatformReplayKit/Demo/Scenes
安卓庫(kù)所在路徑 :Assets/Plugins/Android/replay_kit_lib
2登失,項(xiàng)目中接入
2.1 關(guān)鍵API介紹
插件初始化,在啟動(dòng)app時(shí)調(diào)用:
? ? ReplayKitManager.Initialise();
檢查設(shè)備設(shè)備 錄屏功能是否可用:
? ? ReplayKitManager.IsRecordingAPIAvailable();
檢查app是否正在錄制:
? ? ReplayKitManager.IsRecording();
開(kāi)始錄屏工作:
? ? ReplayKitManager.StartRecording();
結(jié)束錄屏:
? ? ReplayKitManager.StopRecording();
檢查app是否支持預(yù)覽錄制預(yù)覽:
? ? ReplayKitManager.IsPreviewAvailable()
保存視頻:
? ? ReplayKitManager.SavePreview();
2.2挖炬,初始化
在APP初始化時(shí)調(diào)用:
ReplayKitManager.Initialise();
private void Awake()
? ? {
? ? ? ? ReplayKitManager.Initialise();//這里調(diào)用錄制工具進(jìn)行注冊(cè)揽浙,開(kāi)啟功能
}
2.3,錄制/停止
開(kāi)始錄制:
ReplayKitManager.StartRecording(true/false);
參數(shù)為true: 代表在錄制屏幕時(shí)也要錄制麥克風(fēng)語(yǔ)音
參數(shù)為false: 靜音錄制屏幕
停止錄制:
ReplayKitManager.StopRecording();
如:
public void startRecord()
? {
? ? ?ReplayKitManager.StartRecording(true);//錄制含麥克風(fēng)聲音
?}
? ?public void stopRecord()
? ?{
? ? ReplayKitManager.StopRecording();
? ?}?
2.4,保存錄制
在保存錄屏之前馅巷,必須要調(diào)用
ReplayKitManager.IsPreviewAvailable()膛虫,如果返回為true,才能進(jìn)行保存
如:
? ? public void saveRecord()
? ? {
? ? ? ? if (ReplayKitManager.IsPreviewAvailable())
? ? ? ? {
? ? ? ? ? ? ReplayKitManager.SavePreview((error) =>
? ? ? ? ? ? {
? ? ? ? ? ? });
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? statusLog("當(dāng)前錄制的視頻還沒(méi)處理完成钓猬!");
? ? ? ? }
? ? }
3, Android 10崩潰問(wèn)題解決
小編我第一次導(dǎo)入包稍刀,打包就遇到這個(gè)問(wèn)題,如果直接打包敞曹,在android 10設(shè)備會(huì)崩潰账月。
配置如下:
1,unity3d頂部菜單 Windows -> Voxel Busters -> Cross Platform Replay Kit -> Settings
2澳迫,勾選 “Android Q support under Android section”
3局齿,點(diǎn)擊保存
妥妥的,錄屏功能解決了橄登,最后希望這篇文章對(duì)大家有幫助抓歼,有不理解的地方歡迎大家留言,如果有錯(cuò)誤的地方示绊,也歡迎大家指正锭部。
如果有需要該插件的朋友們暂论,可以點(diǎn)擊這里下載
下載地址?
注意:該資源僅用于個(gè)人學(xué)習(xí)目的面褐,嚴(yán)禁用于一切商業(yè)用途!