一時停止/再生の再開および次/前のトラックのBluetoothコマンドの送信


10

Ubuntu PCがBluetoothオーディオコマンド(再生/一時停止、次/前の曲、上/下)を他のデバイスに送信して、Bluetooth経由で音楽をストリーミングしたいと思います。つまり、トラックを変更したり、音楽を一時停止したり再開したりできるBluetoothヘッドフォンのように、Ubuntu PCを「偽装」して実装したいと考えています。

私は以下のpavucontrolスクリーンショットで示されている次の設定をしています(pt2デバイスはBluetooth経由で接続されています): ここに画像の説明を入力してください ここに画像の説明を入力してください

この構成ではストリーミングは期待どおりに機能します(からストリーミングされた音楽を聞くことができますpt2)が、再生の一時停止/再開やトラックの変更などの信号を送信する方法を見つけることができませんでした。

特定の機能を可能にする多くのBluetoothプロトコルがあることをすでに知っています。仕様を正しく理解していれば、私が興味を持っているのはA2DPです。これは現在デバイスが接続されている方法です。しかし、プロファイルのドロップダウンの下には、HSP / HFPヘッドセットヘッドユニット、HSP / HFPヘッドセットゲートウェイ、およびオフのオプションもあります。

このようなコマンドを送信できる独自のアプリケーションをPythonで開発するので、Python APIまたはbashコマンドを使用して送信することに興味があります。

Bluetoothデバイスと通信する方法に興味があるので、この質問をしています。


私はテストする機会はありませんが、同じ問題が発生するため、ソリューションにも興味があります。ここでの議論:ubuntuforums.org/…ロードする入力モジュールを追加するだけでよいようですが、情報はポストにたくさん。
AtomiX84

@ AtomiX84私はかなり反対の問題を抱えているという印象を持っています。PCのステアリングミュージックに接続されたヘッドフォンではなく、PCでヘッドフォンを再生したいのですが。
pt12lol


@kennかなり一般的な外観にリンクしているのに、かなり具体的なものを見たいと思っています。私のユースケースに固有のより詳細な例を提供できますか?
pt12lol

私はその分野の専門家ではありません。githubで検索できます。また、このリンクをご覧
questions / 48932249 /…

回答:


10

@kennに触発されて、私はdbusd-feetツールについてさらに深く掘り下げることにしました。最終的に私は次のコマンドを使用して目標を達成しました。

dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_44_78_3E_85_9D_6F org.bluez.MediaControl1.Play

もちろん、これにより、Bluetooth経由でPCに接続されたモバイルデバイスで音楽の再生がトリガーされました。

一般に、Bluetoothデバイスの場合、このコマンドは次のようになります。

dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated> org.bluez.MediaControl1.<command_to_send>

デバイスのMACアドレスを確認するには、を実行しbt-devices -lます。括弧で囲まれたMACアドレスを持つすべての既知の(ただし、必ずしも接続されている、または検出されているとは限らない)デバイスが一覧表示されます。

許可されたコマンドのリストを見つけるには、でインストールd-feetsudo apt install d-feetます。それを実行した後、タブのbluez下でクエリの検索を適用System Busし、デバイスのMACを持つエントリを見つけます。

ここに画像の説明を入力してください

でBluetoothヘッドフォンを使用するものと同様の方法がありますorg.bluez.MediaControl1。しかし、これらのツリーを参照すると、さらにAWAYを見つけることができます。これは本当に注目に値します。

dbus-sendは、を使用して信号を送信するためのコマンドですdbus--systemスイッチは、System Busdフィートのタブからのものを使用することを示します。私はまだ試していませんが、--print-replyデバッグ目的のためだけであり、必須ではないと思います。--dest=org.blez意味NameD-足のヘッダ。オブジェクトツリーのパス/org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated>org.bluez.MediaControl1.<command>参照して ください。


これは素晴らしい !これらのdbus-sendコマンドをPCのメディアボタンにマッピングしましたか、それをどのように使用するつもりですか?
Robert Riedl

1
@Robert Riedlゲームパッドのボタンダウンイベントをキャッチし、音楽をコンピューターにストリーミングするモバイルデバイスに送信される特定のコマンドにマップしたかった。このプロジェクトの動機は、音楽マネージャーになるのが大好きな息子でしたが、私は彼がスクリーンのそばであまり多くの時間を費やしたくありませんでした。したがって、私は彼に他の種類のUXを提供することにしました;)
pt12lol
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.