Bluetoothスピーカーと接続していても、音を出していないとBluetoothスピーカー側がスリープモードに入り、必要な時に音が出ない場合がある。ここでは、Bluetoothスピーカーとの接続が切れないようにする方法をお伝えする。

アイディアはとても簡単で、ある一定時間ごとに無音のサウンドを出力し続けることにより、Bluetoothスピーカーとの接続を維持する。

環境:Raspbian GNU/Linux 8.0 (jessie)

無音のwavファイル

無音のサウンドの元となるファイルは、Audacityを使用させていただき作成した。作成したファイルは、1ミリ秒の無音のwavファイルとなっており、以下のリンクをクリックするとダウンロードできる。これを適当なディレクトリに配置しておく。

今回は、「/home/user/」ディレクトリに「nosound_one_millisecond.wav」として配置することにする。

Bluetoothスピーカーで無音ファイルを出力

次に、Bluetoothスピーカーで無音ファイルを出力するBashスクリプトを以下のように作成する。
スクリプト中のBluetoothスピーカーアドレスは、事前に確認しておく。
すでにBluetoothスピーカーと接続されていればターミナル上で「hcitool con」コマンドを実行すれば、現在接続されているBluetooth機器の一覧が表示される。

今回は、「/home/user/」ディレクトリに「continue_connection_of_bluetooth_speaker.sh」として配置する。


#!/bin/sh

# Bluetoothスピーカーアドレス
# 適宜、右側を変更
ADDR="XX:XX:XX:XX:XX:XX"

# 無音wavファイル
NOSOUND_FILE="/home/user/nosound_one_millisecond.wav"

# Bluetoothスピーカーが接続されていた場合に無音wavを出力
if hcitool con | grep "${ADDR}" ; then
    aplay ${NOSOUND_FILE}
fi

一定時間ごとに無音ファイルを出力

どの程度の間隔が空くと、Bluetoothスピーカーがスリープモードに入るのかは機器に依存すると思われる。
ここでは、cron上で3分ごとに上記のスクリプトを実行するようにする。

まずは、ターミナル上でcronを開く。


$ sudo crontab -e

次に、以下を追加してcrontabを閉じる。


*/3 * * * * sh /home/user/continue_connection_of_bluetooth_speaker.sh > /dev/null 2>&1

これで、Bluetoothスピーカーと接続している限り、Bluetoothスピーカー側で勝手に接続が切られることがないはずだ。

関連する記事

  • Ubuntu20.04にRをインストールする方法Ubuntu20.04にRをインストールする方法 Ubuntu 20.04 LTSにRをインストールする方法についてお伝えします。 作業は端末上で行うため、端末を起動しておきます(ショートカットキー:Ctrl+Alt+t)。 Ubuntuのバージョンを確認 Ubuntuのバージョンを確認するために、以下のコマンドを実行します。 Ubuntu 20.04と表記されていることを確認します。 $ cat […]
  • WindowsにRをインストールする手順WindowsにRをインストールする手順 WindowsにRをインストールする手順をお伝えいたします。 ファイルのダウンロード Rのインストールファイルをダウンロードするために、次のサイトに移動します。 R: The R Project for Statistical Computing 「download […]
  • Journal of Statistical Software: 記事一覧 Journal of Statistical Software の記事一覧をご紹介する。英語での説明文をgoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 確認日:2017/03/24 論文数:1089 Introduction to stream: An Extensible Framework for Data Stream […]
  • 統計的因果推論による傾向スコアとIPW推定量の基本的な考え方統計的因果推論による傾向スコアとIPW推定量の基本的な考え方 [latexpage] 統計的因果推論による因果効果を調べる手段として、傾向スコアとIPW推定量という概念があります。ここでは、なぜ傾向スコアを考えるのか、傾向スコアの逆数の重み付けはどのような意味があるのかを、複雑な数式を用いずに具体例を通してご説明します。 さっそくですが、次の具体例を考えます。 […]
  • Bioconductor ExperimentDataパッケージ一覧Bioconductor ExperimentDataパッケージ一覧 BioconductorのExperimentDataパッケージの一覧をご紹介します。英語での説明文をgoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。パッケージを探す参考にしていただければ幸いです。 パッケージ確認日:2021/01/01 パッケージ数:398 1. ALL A data package データパッケージ 2. […]
RaspberryPi Bluetoothスピーカーとの接続を維持する方法