Python 3 を使用して独自の曲アプリケーションを作成しようとしています。 pip3 コマンドから SoCo をインストールしました。現在、このスクリプト(find.pyと呼ばれます)があります。
import time, soco, sys
def search_for_speaker(speaker_name):
global zone_list
zone_list = list(soco.discover())
for speaker in zone_list:
if speaker.player_name == speaker_name:
global player
player = speaker
search_for_speaker(sys.argv[1])
player.pause()
time.sleep(1)
player.play()
私が家に持っているスピーカーはHallway
、Kitchen
と呼ばれていLiving Room
ます。Hallway
単独でKitchen
いる間、グループに属してLiving Room
います。
を実行するpython3 find.py Living\ Room
と、スクリプトはスピーカーを一時停止してから再び再生します。を実行するときも同じpython3 find.py Kitchen
です。問題は、私が試したときですpython3 find.py Hallway
。結局、このエラーが発生します。
Traceback (most recent call last):
File "find.py", line 12, in <module>
player.pause()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/soco/core.py", line 94, in inner_function
raise SoCoSlaveException(message)
soco.exceptions.SoCoSlaveException: The method or property "pause" can only be called/used on the coordinator in a group
kitchen
これは、スピーカーが「マスター」スピーカーであるのに対し、「廊下」スピーカーはそうではないためだと思います。
これを機能させるにはどうすればよいですか?トラックの再生/一時停止、次へ/前へ、音量を変更できるようにしたい。
スクリプトを実行するときにスピーカーの名前を変更できることはわかっていますが、コマンドラインから実行するつもりはありません。代わりに、Better Touch Tool Remote (iOS) から実行します。