【Unity-iOS】RenderTextureを映像としてカメラロールに保存する

UnityでiOSアプリを作成するときに,RenderTextureの映像を動画としてiPhoneのカメラロールに保存するサンプルをもとに,あれこれするためのメモ.

以下の方法をiOS13.0以下のバージョンで実行しても動作が確認できなかった.iOS13.1以上にすると動作するっぽい?

参考にしたリポジトリは以下

https://github.com/fuziki/VideoCreator

このサンプルの @fzqui さんに感謝.

Environment

  • macOS Catalina 10.15 Beta
  • Xcode 11.1
  • Unity2019.1.12f1
  • iOS 13.1.2

Methods

0. git lfsのインストール

これを忘れるとビルドしたときに,エラーを吐いてから気づいて悲しくなる.

1.リポジトリのクローン

https://github.com/fuziki/VideoCreator

上記のリンク先のfuziki/VideoCreatorをクローンする.

2.Unityで当該プロジェクトを開く

VideoCreator/ZUnityProject/VideoCreator/

をUnityで開く.

3.PlayerSettingsの変更

Scripting Runtime Versionを .NET 4.xに上げる.

4.ソースの修正

1行だけ直す部分がある.

Assets/Plugin/VideoCreator/Scripts/VideoCreatorUnity.cs

の13行目を以下のように変更する

“new”を追加する.

修正されました!(^^)

5.適宜PlayerSettingsをiOS書き出し用に変更

Bundle Identifierを適宜変える.

6.UnityでXcodeプロジェクトファイルをBuild

Xcode用のプロジェクトを書き出す.

7.Xcodeでプロジェクトを開き,設定

Signing & CapabilitiesのTeamを自らのものに設定.

General -> VideoCreator.frameworkのEmbedの値を”Embed & Sign
に変更.

Info.plistの設定を変更して,アプリの権限周りの設定を行う.

Keyに以下の3つを追加.

Privacy – Microphone Usage Description
Privacy – Photo Library Additions Usage Description
Privacy – Photo Library Usage Description

Valueは適宜設定.一応空白でも動く.

最後にBuild Phasesのタブを開き,Link Binary With Librariesの
VideoCreator.frameworkのstatusをOptionalに変更する.

8.XcodeでBuild

ビルドを実行し,実機で動作を確認する.

起動時に以下のような同意を求めるダイアログが表示され

撮影開始,撮影終了のボタンを押して,カメラロールに保存できれば完了.

Licence

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です