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

[最終更新] 2018年1月15日

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

スポンサーリンク

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

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

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

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

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

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

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

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

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

ということで、電源不要のパッシブスピーカーも購入しました(「ヤザワ プラグインミニスピーカー VRS202W」)。

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

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

関連コンテンツ

関連記事

スポンサーリンク

“Androidアプリ開発:3.5mmイヤホン端子からマイク録音(ライン録音)” への8件の返信

  1. 分岐アダプタ!なるほど!私が今まさに求めていた記事です、大変参考になりました。
    同じくLINE関連ばかりが検索に引っかかり大変でした笑

    1. こんにちは。
      お役に立てたようでよかったです。ちょっと不格好ですが目的は果たせます。こういうマニアックな製品を手軽に買えるのがAmazonの有難いところですね。お求めは是非うちのリンクから(笑)。

  2. 同じくLINE関連ばかりで辟易していました。ライン(線)入力がしたいのに。初心者で良くわかりませんが早速試してみます。ありがとうございました

    1. こんにちは。同じ悩みを抱えた人は意外といますね。タイトルをマイク録音にしたのは、少しでも検索のことを考えてだったりします。
      ハードウェアレベルでの解決はソフトウェア的には一番楽(というか何もしない)なので、後は簡単だと思いますよ。

    1. あれ、そうでしたか。私の環境では表示されているのですが。一時的なものかな。
      一応名前も載せておきました。

  3. ラインから録音のアプリがみつからず、かといってAndroidのブログラミングまでは踏み込んでおらず、なんとなくもやもやしてました。
    MediaRecorder.AudioSource.MICというAPIの仕様(らしい)とのこと、貴重な情報ありがとうございます。

コメントを残す

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