iOSでBluetoothイヤホンの音が大きいのをLinuxにAirPlayして解決する

カテゴリー: スマートフォン
投稿日:
更新日:
書いた人: 山椒ねこまんま

最近新しいBluetoothイヤホンを買ったのですが、やたらと音が大きくて困っていました。

Androidに繋いだ時は「うるさいなぁ」くらいで済むのですが、iOSに繋ぐと耐えられない大音量になります。 スマホで雑に測ると、なんと 75dB!

音が大きいというレビューは見当たらなかったので、普通の人にはどうってことないレベルなのかもしれませんが…
50dB弱くらいのイヤホンを使っていた僕には耐え難い音量なのです。


最初はMacでどうにかできないかと色々やってみたのですが、純正AirPlayレシーバー機能だと映像も転送されてしまったり、非公式ツールだとうまく音が出なかったりで断念。

Debian/Ubuntu系のLinuxディストリである Zorin OS で試してみたところ、うまくいく方法を見つけられたのでメモしておきます。

Shairport Sync

AirPlayオーディオのレシーバーである Shairport Sync をインストールします。

sudo apt update
sudo apt install shairport-sync

設定

sudo systemctl disable shairport-sync
sudo nano /etc/shairport-sync.conf

デーモンを無効化した後、以下の通りに設定ファイルを編集します。

output_backend = "pa";
ignore_volume_control = "yes"; #  これやらないとホワイトノイズがひどい

ユーザーレベルデーモンの設定

mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/airplay.service

ユーザー権限で実行しないとサウンドシステムとの通信がうまくいかなかったのでユーザーレベルのデーモンを作成します。

サービスファイルの中身は以下の通り

[Unit]
Description=User Level Shairport-sync Service

[Service]
ExecStart=/usr/bin/shairport-sync
Restart=on-failure

[Install]
WantedBy=default.target
# 設定の読み込み
systemctl --user daemon-reload

# 自動起動の有効化
systemctl --user enable airplay.service

# 今すぐ起動
systemctl --user start airplay.service

# ログイン前に起動するように
sudo loginctl enable-linger $USER

# 確認
systemctl --user status airplay.service

起動時に自動で実行されるようにしておきます。

Easy Effects

音響エフェクトを簡単にかけられるGUIツール Easy Effects をインストールします。

Ubuntu系ならビルトインのソフトウェアストアから簡単にインストールできます。

iOSから繋いで適当な音を流すと、設定画面に「Shairport Sync」が現れます。

システム設定の最小音量からさらに絞ることができます。 あんまりやりすぎるとブロックノイズみたいなのがのるので程々にしましょう。

一応ノイズフィルタなどをかけることもできますが、あまり効果はありませんでした…

iOSから接続する

音楽再生のコントロールウィジェットをタップします。

AirPlayの接続先に出てくるのでこれを選べば接続完了です!



50dB強くらいならノイズもなく使えるようになりました。 これでお耳の平穏を保てそうです。

動画との音ズレも小さくて気になりません。

気になるところは「再生開始3秒くらいは無音になること」と「曲の初めや終わりなどの音が小さい部分でノイズが聞こえること」ですかね。
もっとも、後者に関してはAndroidに繋いだときもそうだったのでイヤホンの性質なのかもしれないですが…


アプリなどを作ったりしています! よかったらみていってください→ つくったもの
今のイチオシ↓

山椒ねこまんま
山椒ねこまんま

個人アプリ開発者、ブロガー。

iPhone 12 mini から買い替えるタイミングを見失った。