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スピーカー側で勝手に接続が切られることがないはずだ。

関連する記事

  • 地図で見る石川県野々市市の人口 2013年12月版地図で見る石川県野々市市の人口 2013年12月版 野々市市役所が公開している平成25年12月末日の住民基本台帳人口と総務省統計局が公開している地図データを基に人口、人口密度、世帯数などの数値および前年同月からの増減率を地図上に色分けして視覚化したものと上位・下位のランキングをご紹介する。 人口の上位・下位ランキング […]
  • R言語 CRAN Task View:統計遺伝学R言語 CRAN Task View:統計遺伝学 CRAN Task View: Statistical Geneticsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: Giovanni Montana Contact: g.montana at […]
  • 平均的に分類する方法の考察(2)平均的に分類する方法の考察(2) 前回は、100人の学生のスコアを求めて、スコアの昇順に3つのグループに振り分ける方法を試した。振り分け方は、単純に、3つのグループに属する学生の少ないほうからである。前回の終わりに、各インデックスの平均値を考慮したものを考えてみると書いたが、その前に、一つ確認しておかなければならないことを忘れていたので、今回はその確認をしようと思う。 何を確認し忘れたかというと、全体の […]
  • R データフレームのファクター列を2値に変換する方法 Rのデータフレームにおいて、ファクター列を2値に変換する方法をお伝えいたします。 方法はとても単純で、データフレームの列ごとにファクター型かどうかをチェックし、ファクター型であればファクターごとに2値の列を新たに作成し追加します。 ソースコードは以下のようになります。 convertFactorToBinary <- function(df, sep = […]
  • UbuntuでRStudioの外観をDarkに変更する方法UbuntuでRStudioの外観をDarkに変更する方法 Ubuntu上のRStudio(ver 1.0.153)の外観をダークテーマに変更する方法をお伝えします。 2017年8月31日時点の安定版RStudioには、外観を変更する機能は搭載されておりません。しかし、daily […]
RaspberryPi Bluetoothスピーカーとの接続を維持する方法