Soco,群里暂停
Soco, pause in group
我正在尝试使用 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
是 'master' 的演讲者,而 'Hallway' 不是'。
我需要做什么才能让它工作?我希望能够 play/pause 在曲目上 next/previous 并改变音量。
我知道我可以在 运行 脚本时更改演讲者的名字,但是我不会 运行 通过命令行来设置它,而是来自 Better触摸工具遥控器 (iOS)
答案是例外:当Sonos玩家分组时,一个玩家有"group coordinator"的特殊角色。所有影响整个组状态的命令都需要发送给组协调器。在 SoCo 中,您可以通过调用
来实现
player.group.coordinator.play()
免责声明:SoCo 是(一个很棒的库)不受 Sonos 支持或认可。
我正在尝试使用 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
是 'master' 的演讲者,而 'Hallway' 不是'。
我需要做什么才能让它工作?我希望能够 play/pause 在曲目上 next/previous 并改变音量。
我知道我可以在 运行 脚本时更改演讲者的名字,但是我不会 运行 通过命令行来设置它,而是来自 Better触摸工具遥控器 (iOS)
答案是例外:当Sonos玩家分组时,一个玩家有"group coordinator"的特殊角色。所有影响整个组状态的命令都需要发送给组协调器。在 SoCo 中,您可以通过调用
来实现player.group.coordinator.play()
免责声明:SoCo 是(一个很棒的库)不受 Sonos 支持或认可。