新人日誌

はじめまして、先週1月7日に入社したTanakaと申します。

研修でAndroid上のカメラから映像を取得し、ストレージに保存するアプリケーションを作成しました。

Google Open Sourceのコードを参考にし、Camera2 Apiを使いカメラから映像を取得し、

MediaRecorderでストレージに保存するというおおまかな処理の流れは読み取れたのですが、必要なパーミッションの承認要求でつまづきました。

AndroidManifestに必要なパーミッション(今回は撮影用のCAMERA、内部ストレージへの書き込み用のWRITE_EXTERNAL_STORAGE)を書き、

プログラム上のパーミッションが必要になるところで

requestPermissions("ここに必要なパーミッション")

でユーザーにパーミッションの承認を要求します。

 

さて、無事にパーミッションの承認要求ができたので保存していこう。

としたのですが、今度は書き出したファイルへのアクセスでつまづきました。

参考にしたコードでは

getExternalFilesDir(null)

とあり、アプリのプライベート・ディレクトリに保存されアクセスが面倒です。なので

getExternalStoragePublicDirectory(DIRECTORY_MOVIES)

として内部ストレージのMOVIESディレクトリに保存されるように変更。

これで分かりやすくなりました。

 

保存したファイルにアクセスしてみるとファイルサイズが0、保存に失敗していました。

MediaRecorder.stop()でエラーを吐いているみたいです。

MediaRecorderのsurfaceに

createCaptureRequest(TEMPLATE_RECORD)

でレコード用のリクエストを送ることを忘れていたようです。

 

これで無事に目的の動きをさせることができるようになりました。

まだまだ理解が足りていない部分もありますが参考にしたコードをもとに勉強していきたいと思います。

 

Tanaka



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム