Androidアプリ開発:3.5mmイヤホン端子からマイク録音(ライン録音)

[最終更新] 2017年2月21日

Androidのアプリ開発で、3.5mmイヤホン端子の外部入力をマイク録音するためのメモです。いわゆるライン録音です。しかし、AndroidのAPIでは明示的にライン録音を指定するのが難しいらしく、ヘッドセット用のマイク-イヤホン分岐アダプタを購入しました。

スポンサーリンク

入力元をソフトウェアで明示的に指定できない

Androidのアプリ開発において、マイク録音はMediaRecorder.AudioSource.MICと指定することで出来ます(ソースの例は「Androidアプリ開発:録音と再生」)。通常であれば、デバイスのマイクが使用されますが、ヘッドセットなどを検知すると、そちらの入力を使うようになります。

どうやらこの切り替えは、Androidの開発用のAPIで明示的に指定することは難しい(できない?)ようです。少なくとも、MediaRecorderではできなさそう。色々調べていると、ハードウェアレベルでの制御が必要らしい(インピーダンスを見ている?)。

つまり、デバイスのマイクではなく、3.5mmのイヤホン(ヘッドフォン)端子からの外部入力を録音したい場合(いわゆるライン録音)、具体的には、外部のオーディオ機器等からの出力を、オーディオケーブル経由でAndroid端末に入力したい場合などは、困ってしまう。

ヘッドセット用のマイク-音声分岐アダプタを挿入

まぁハードウェアレベルで制御しなくてはいけないのであれば、素直にハードウェアレベルで対策するのが一番簡単だろうということで、下記の商品を購入しました。

マイクと録音に分岐してくれるアダプタです。これをAndroid端末に挿入すると、ヘッドセットを挿入したように認識されるようです。

これを使ってMediaRecorderにより録音を実行したところ、無事ライン録音出来ました。音質はまぁぼちぼちといったところです。

この方法だと、音声出力もこの端子経由になってしまいます。イヤホンでよければ、イヤホンをつなげればよいのですが、スピーカー出力が必要な場合、別途スピーカーを繋げねばなりません。

ということで、電源不要のパッシブスピーカーも購入しました。

なんだか色々と不格好になってしまいましたが、ひとまずこれで目的は達せられました。こういうマイナーな製品がさっと手に入るAmazonさんは本当に有難い存在です。

それにしても、ライン録音で検索すると、LINEの通話録音の話ばかり出てきて辟易としました……こればかりは検索妨害というわけにもいかず、仕方のないことではあるのですが……。

関連コンテンツ

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。