THINKLET向けの CameraX 録画アプリ(5ch音声ファイル出力対応版)です.
【新機能】5チャンネル音声をそのまま保存できることができます.
Note
- 従来版:音声は,5chマイクから録った音声を処理して,動画ファイルの音声チャネルに1chまたは2chで保存されます.
- 本リポジトリ版:従来版の動画への音声保存に加えて,5chの音声データを 別々に Rawファイル(無圧縮の音声ファイル)にも保存します.
- 設定値を
rawに指定することで,mp4ファイルと共に5ch音声をRAWファイルとして出力します.
- 設定値を
このアプリを開発するに至った背景は,こちらの記事を参照してください.
- Android Studio Narwhal Feature Drop | 2025.1.2
このアプリでは,録画ファイルの取り出しに,Adbコマンド,開発者画面の操作を使用しますので,
THINKLET開発者ポータルの開発者画面を表示, adb設定 を確認ください.
- このレポジトリをcloneします.
- ビルドするには,
local.propertiesファイルに以下を追記してください.
# GitHub Packages経由でライブラリを取得します.下記を参考にアクセストークンを発行ください.
# https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
# read:packages の権限が必須です
TOKEN=<github token>
USERNAME=<github username>
gradlewでのビルド (もしくは,AndroidStudioから実行してください.)
# デバッグインストール
./gradlew installDebug
# リリースビルド
./gradlew assembleReleaseビルド前に, app/build.gradle.kts の以下の部分を編集して,
機能のいくつかを無効化,設定値を変更できます.
// 1ファイルあたりの動画の最大ファイルサイズ.最大は4GBです.
val fileSize = 1*1000*1000*1000 // = 1GB
// 録画に使うマイクのタイプ
// https://github.com/FairyDevicesRD/thinklet.camerax.mic で提供するマイクを切り替えます
// 5ch: シンプルな5chマイクを1chに変換したもの
// xfe: AppSDKの試験的な音声処理を行った5chマイクを1chに変換したもの
// raw: 5ch音声をRAWファイルで出力するもの
// normal: シンプルな1chマイクを使用したもの
val micType = "raw" // or "5ch" or "xfe" or "raw" or "normal"
// プレビューの有効化有無
val enablePreview = true
// Visionの有効化有無
// https://github.com/FairyDevicesRD/thinklet.camerax.vision で提供する
// THINKLET/Androidのカメラを別デバイスのブラウザから視る機能
val enableVision = true
// Visionのサーバーポート
val visionPort = 8080Note
アプリ起動前に,事前にカメラとマイクのPermissionを許可してください.
- 録画の開始と停止は,THINKLETの第2ボタン(CAMERAキー) で切り替えます.
- 録画ファイルの取り出しは,
adb pull /sdcard/Android/data/com.example.fd.video.recorder/files/ /path/to/your_local_savedirで行うことができます.
Note
http を使っておりますので,お使いのブラウザや,OSの設定等により,ご利用いただけないことがあります.
- アプリを実行するTHINKLETと,PCなどブラウザで閲覧するデバイスを同一のWi-Fiに接続してください.
- THINKLETに割り振られた Wi-Fiを確認します.下記の場合,
192.168.0.123となります.
$ adb shell ip addr show wlan0
22: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 30:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
inet 192.168.0.123/24 brd 192.168.0.255 scope global wlan0
# (略)- THINKLETで,本アプリを起動します.
- 別デバイスのブラウザから,
http://192.168.0.84:8080へアクセスします.visionPortを変えている場合は適宜読み替えてください.