頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


アプリの画面を録画する(2)AVAssetWriterではまった話

アプリの画面を録画する(1)ReplayKitをあきらめた話
↑この続き。ReplayKitじゃなく自前でなんとかしよう!と調べてみた。

ios - How do I export UIImage array as a movie? - Stack Overflow
[Objective-C] 複数枚の静止画から動画を生成する - Qiita
↑このあたりを参考にさせて頂いた。

ところが作成してカメラロールに保存された動画ファイル(のスクショ)は

ずれて作成された動画ファイルのスクリーンショット

↑こんな感じで何やらずれている。ただし一応動画にはなってる。

あー、こういうずれはきっと、、、と予想した原因がことごとくハズレで結構はまった。
pixel formatの設定やアルファ値の扱い、CVPixelBufferRefを得る方法、カメラロールへの保存方法まで調べていたのだが。
ようやくわかったのは元の静止画像の横幅のサイズが16の倍数でないとダメ、ということであった。

【Swift 3】UIImageの配列から動画を生成する【AVAssetWriter】 | うるおいらんど
↑こちらの記事に書いてはいるけど、リファレンス、ヘッダーに書いてるのは見つけられなかった。

ちなみに元画像の横幅サイズが16の倍数でなくても、コード上でソース画像の横幅を16の倍数にしておけばそれなりに表示はしてくれた。縦横比の問題なんかはあるだろうけど。
縦方向は何ピクセルでもいいみたい。高さ457pxの画像で試したけどちゃんと動いた。457は素数らしい。
スポンサーサイト






アプリの画面を録画する(1)ReplayKitをあきらめた話

アプリの機能の一つとして画面を録画したいな、と思い調べていた。

ReplayKitで撮影した動画をごにょごにょしたい #iosadventcalendar #replaykit - Qiita
↑このようなサイトを参考に(Objective-Cに書き直し)ReplayKitを使うのを試してみた。
確かに便利なのだが例えばユーザーが録画ボタンをタップした後にシステム側が自動的に

ReplayKitの確認画面

↑このような確認画面を表示をする。それも初回だけでもなく毎回というわけでもなく録画開始時のメソッド
- (void)startRecordingWithHandler:(void (^)(NSError *error))handler;
↑これが前回に呼び出された時から8分以上経過してれば表示される、とリファレンスにある。

それ、ユーザーが混乱するんじゃね?ということでReplayKitはあきらめた。

(2)へ続く、、、はず。







半年以上前に設定してたIFTTTが動作した

IFTTTでボールルームへようこそのツイート更新を通知で得る
↑これを書いたのが昨年の9月。半年以上前か。

昨日の夜、ついに竹内友氏から復活宣言ツイートが!



いやあ、よかった、よかった。どういう状況かさっぱりわからないのが続いてたからなあ。

IFTTTの通知

↑ちなみに設定してた通りiPhoneにIFTTTからの通知が来てたんだけど、それより前にTwitterのタイムラインを眺めて時に先ほどのツイートを発見してたのでした。


  TopPage  



Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.