マルチマイクで録音するアプリをつくってみる
THINKLET固有の機能を用いて、簡単な録音アプリを作ってみましょう。
完成品は、MultiAudioRecorder にあります。
新規アプリの作成
- Android Studioから新しいプロジェクトを作りましょう。前項の録画アプリと手順は同じです。
- アクティビティのテンプレートは、
Phone and Tablet
→Empty Activity
で作成、パッケージ名は任意です。本ドキュメントでは、com.example.fd.multichannelaudiorecorder
としています。 - こちらも、MinimumSDK Versionには、
API 27: Android 8.1 (Oreo)
を選択します。
THINKLET App SDK の導入
- THINKLETの開発には、デバイス固有の機能にアクセスするための機能として、THINKLET App SDK を Github Packages で提供しています。
- マルチマイクを扱うには、THINKLET App SDKを使うことが最も容易です。
- ここでは、その設定をします。
Github 個人用アクセストークン発行
- THINKLET App SDKには、Githubアカウントが必須です。アカウントを持っていない方は、Github よりアカウントを作成して下さい。
- Creating a personal access token (classic) に従い、アクセストークン(以下、トークン)を発行します。トークンのスコープには、
read:packages
が必要です。- トークンは、パスワードと同様の扱いとしてください。
- GithubPackagesについては、こちら も参照ください。
- 執筆時点では、Github Packagesは
personal access token (classic)
のみをサポートしています。 Fine-grained personal access tokens
はサポートされていません。
アクセストークンを設定
- 発行したトークンなどを、作成した
com.example.fd.multichannelaudiorecorder
(または任意のプロジェクト名)に設定していきます。 - プロジェクト直下の
settings.gradle
または、settings.gradle.kts
ファイルに以下を追記します。これにより、ビルドシステムが必要なライブラリを見つけられるようになります 。- Groovy(.gradle)
- Kotlin(.gradle.kts)
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
+ maven {
+ name = "GitHubPackages"
+ url = uri("https://maven.pkg.github.com/FairyDevicesRD/thinklet.app.sdk")
+ credentials {
+ Properties properties = new Properties()
+ properties.load(file('github.properties').newDataInputStream())
+ username = properties.getProperty("username") ?: ""
+ password = properties.getProperty("token") ?: ""
+ }
+ }
}
}
rootProject.name = "MultiChannelAudioRecorder"
include ':app'dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
+ maven {
+ name = "GitHubPackages"
+ setUrl("https://maven.pkg.github.com/FairyDevicesRD/thinklet.app.sdk")
+ credentials {
+ val properties = java.util.Properties()
+ properties.load(file("github.properties").inputStream())
+ username = properties.getProperty("username") ?: ""
+ password = properties.getProperty("token") ?: ""
+ }
+ }
}
}
rootProject.name = "MultiChannelAudioRecorder"
include ':app' - 次に、
settings.gradle
またはsettings.gradle.kts
があるプ ロジェクト直下で、github.properties
ファイルを新規作成し、以下の内容を追記します。+ username=あなたの Github username
+ token=発行したトークン - 次に、
app/build.gradle
またはapp/build.gradle.kts
ファイルに以下を追記します。- Groovy(.gradle)
- Kotlin(.gradle.kts)
dependencies {
implementation 'androidx.core:core-ktx:1.13.1'
implementation 'androidx.compose.material3:material3'
(中略)
+ implementation 'ai.fd.thinklet:sdk-audio:0.1.2'dependencies {
implementation("androidx.core:core-ktx:1.13.1")
implementation("androidx.compose.material3:material3")
(中略)
+ implementation("ai.fd.thinklet:sdk-audio:0.1.2") - 最後に、Android Studioを操作します。
- 画面上部に表示されている
Sync Now
をクリックします。 - Syncすることで、THINKLET App SDKの
sdk-audio
をローカルに取得し、機能を利用できるようになります。 - この時点で、エラーなどが発生する場合は、Githubトークンの情報に誤りがある、ビルドマシンがオフラインなどの可能性があります。
- 画面上部に表示されている