ZOZOでは、ショップスタッフ向けの販売サポートアプリ「FAANS」を開発しています。FAANSアプリを利用することで、スタッフはコーディネートを投稿し、その閲覧数や売上などの成果を確認できます。これまでは画像のみの投稿が可能でしたが、新たに動画投稿機能が追加されました。私は、この動画投稿機能の開発を担当しており、AVFoundationを用いて動画の編集や再生機能を実装しました。本トークでは、FAANSにおける動画機能の開発過程で直面した課題と、それを克服するために用いたテクニックについて紹介します。
具体例として、FAANSではエンコードされていない動画と音楽を同期して再生する機能が求められました。単に再生を開始するだけでは動画と音楽のズレが発生するため、AVPlayerのreadyToPlayステータスを監視して、両者が再生可能になった時点で再生を開始するように実装しました。また、アップロードされた動画を再生する際には、動画が再生可能かどうかをObserverを用いて監視し、再生できない場合には適切なエラーハンドリングを行うことで、再生の待機やアラート表示を実現しました。
本トークでは、動画機能の開発における具体的な課題とその解決策について、実際のコード例を交えながら詳細に解説し、新たな知識と知見を提供します。