當前位置:編程學習大全網 - 源碼下載 - ios10的replaykit怎麽用

ios10的replaykit怎麽用

ReplayKit簡介

在iOS 9中,ReplayKit 是壹款全新的框架,可謂是遊戲開發者(開發商)的福音。它可以讓玩家更便捷地記錄遊戲進度或數據以及分享的功能。除此之外更強大的是:ReplayKit為用戶(玩家)提供了壹個全功能的交互界面,用戶可用它來編輯或制作自己的視頻剪輯!

ReplayKit不需要太大電量損耗和性能損耗就可以產出高清的視頻記錄。ReplayKit支持使用A7芯片以上,操作系統為iOS 9或更高版本的設備。

您需要準備什麽

本教程要求您的Xcode版本為7.0以上,OS X為Yosemite(10.10.x)以上。倘若您還想在您的設備上體驗壹下這個簡易的工程,請確保您的設備可以滿足ReplayKit所需要的軟硬件要求,當然您還需在GitHub上下載工程源碼。

啟動錄制?

ReplayKit框架提供了RPScreenRecorder類以及類單例方法sharedRecorder()供您進行遊戲錄制。這個實例對象負責檢查設備的記錄功能,包括啟動、停止以及丟棄記錄,並可以選擇啟動麥克風讓玩家錄制真人語音解說!

打開從GitHub下載的初始工程中GameViewController.swift文件。在文件頂部,導入ReplayKit框架。

編譯運行妳的應用程序並嘗試按下綠色按鈕,妳會看到類似壹團火焰的粒子效果,如果妳點擊Start Recording,妳會看到這樣的警告,如圖:

註意,這個警告每次會在妳開始錄制時出現。然而,壹旦用戶選擇了其中壹種偏好設置,系統會在接下來的8分鐘記住這個選擇。

在妳選擇選項之後,Start Recording按鈕變為了紅色的Stop Recording按鈕。

我們創建壹個UIAlertController,它有兩個action,壹個為丟棄記錄,另壹個為回看記錄。選擇丟棄記錄則調用discardRecordingWithHandler(_:)這個方法。要註意的是,這個方法只能在確保錄制成功地完成後才可以調用,要是在錄制進行的時候就調用的話,雖然系統不會拋出任何錯誤,但是也不會丟棄任何記錄。

選擇回看記錄,我們就呈現previewController視圖,它是RPPreviewController類的實例,從stopRecordingWithHandler(_:)方法回調塊中返回給我們,用來回看、編輯或分享記錄。這個previewController視圖控制器實例是唯壹能夠訪問到由ReplayKit生成的視頻文件,它的職能就是負責保存/分享記錄。

最後,別忘了恢復startRecording按鈕以便再次另壹段記錄的開始!

編譯和運行妳的應用程序並點擊開始錄制。壹旦按下Stop Recording按鈕,妳會看到如下的彈出窗:

如果妳選擇了View選項,會呈現如下的視圖控制器:

在這裏,妳可以編輯妳的錄像並可以點擊Save按鈕選擇轉存到妳的“照片”中。當然妳也可以點擊左下角的分享按鈕分享妳的錄制視頻。

需要註意的是,不管是由於設計的原因還是ReplayKit框架的bug,在保存到“照片”的時候沒有確認的過程就直接進行了保存。

排除界面元素

妳可能已經註意到了頂部和底部的按鈕在應用錄制的記錄中都是可見的,它們包含在了最終的視頻記錄中。當RepalyKit錄制妳的應用時,它毫不遺漏地記錄了應用程序在UIWindow中渲染的壹切視圖,任何細節都不掩飾地記錄。還好,RepalyKit可以在來電話是或用戶輸入時的界面停止錄制。

從記錄中排除的用戶界面元素,妳需要把它們放置在單獨的UIWindow實例中。讓我們研究下它是如何工作的。在GameViewController類中添加壹個屬性buttonWindow,類型為UIWindow!

新的視圖控制器唯壹不同於之前的是窗口頂端的交互部分。它確保了交互控件正確的顯示與用戶交互的正確執行。

再次運行妳的應用,並進行新的錄制,妳會發現界面按鈕都隱藏了:

要點

在即將完成時,妳還需要註意使用RepalyKit時的壹些關鍵的要點。

每個應用程序在任何時間只可以存儲壹條記錄。壹旦妳開始錄制壹條新的記錄,如果之前的記錄已存在,那麽新的會自動覆蓋掉之前的記錄!

及時地丟棄不必要的記錄。確保沒有太多不必要的視頻數據占用設備的本地存儲空間,從用戶的行為中壹旦判斷出壹條記錄沒有價值時,及時地丟棄它。在本教程中,在用戶不需要記錄的情況下,教程也給出了最佳的實現邏輯那就是丟棄它。

顯示錄制指示器。正如本教程中,顯示指示器可以提示用戶視頻是否在錄制,尤其在同時使用設備的麥克風的情況下,盡可能地提高用戶體驗。

仔細選擇要從用戶的錄制交互界面排除的元素,把選擇界面的元素放置在單獨的窗口中,包括用以選擇的控件或者偏離遊戲本身那些不重要的東西。如:記錄指示器,虛擬控制或菜單按鈕。

妳不能直接訪問最終的視頻文件。通過用戶回看視圖控制器previewViewController妳才可以使ReplayKit的記錄存儲的數據可見。但由於蘋果對用戶隱私保護,ReplayKit的記錄數據都應由應用程序來訪問。如果妳想上傳這些記錄到妳自己的服務器,妳需要創建壹個***享的擴展視圖控制器來完成,並從previewViewController中呈現出來。

ReplayKit也支持家長控制功能。即使設備當前後臺沒有其他的進程在運行,錄制功能是否可用仍然收到家長控制的授權。這就意味著妳要保證在錄制開始檢查功能是否被允許使用。

最後要說的是,盡管蘋果已經向遊戲開發者(開發商)做好了用ReplayKit使用戶分享他們的遊戲的準備,但妳可以在任何蘋果應用中使用ReplayKit,只要滿足Xcode 7+和iOS 9+的要求。我非常地支持使用ReplayKit這壹優秀的框架,我很樂意看到更多開發者可以使用它,做出更多更好的蘋果應用!

  • 上一篇:夢見自己潛伏的預兆
  • 下一篇:如何安裝pyinstaller
  • copyright 2024編程學習大全網