Nach langem hin und her probieren habe ich es geschafft die Titelinformation auf dem C-Berry darzustellen. Vorgegangen bin ich nach folgendem Beitrag. (C-Berry mit Python ansteuern)
Der folgende Code funktioniert soweit erstmal aber wenn Titel kommen mit ä ö ü usw. bricht das Script mit folgender Meldung ab:
Logged in: False
Version: 7.7.3
Der Traumzauberbaum
Traceback (most recent call last):
File "radiotftestlms.py", line 24, in <module>
print sq.get_track_title()
File "/usr/local/lib/python2.7/dist-packages/http://pylms-1.0-py2.7.egg/pylms/player.py", line 276, in get_track_title
self.track_title = str(self.request("title ?"))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-2: ordinal not in range(128)
Weis jemand was ich machen muss damit mir auch Titel angezeigt werden, bei denen Umlaute vorhanden sind.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
import time
import pygame
import subprocess
from pylms.server import Server
from pylms.player import Player
sc = Server(hostname="IP Adresse vom LMS kommt hier rein", port=9090, username="admin", password="Passwort vom LMS kommt hier rein")
sc.connect()
print "Logged in: %s" % sc.logged_in
print "Version: %s" % sc.get_version()
sq = sc.get_player("MAC Adresse kommt hier rein")
print sq.get_track_album()
print sq.get_track_title()
pygame.init()
window = pygame.display.set_mode((320,240))
font1 = pygame.font.SysFont("droidsans", 25)
font2 = pygame.font.SysFont("droidsans", 15)
font3 = pygame.font.SysFont("freemono", 25)
os.system("tft_init")
os.system("tft_clear")
os.system("tft_pwm 80")
while True:
try:
window.fill(pygame.Color(0,0,0))
lt = time.localtime()
currentplay1 = sq.get_track_album()
currentplay2 = sq.get_track_title()
text1 = font1.render(currentplay1.strip(), 1, (110,110,110))
text2 = font1.render(currentplay2.strip(), 1, (95,155,180))
text3 = font2.render(time.strftime("%H:%M:%S", lt), 1, (150,60,5))
rect1 = text1.get_rect()
rect1.centerx = 160
rect1.centery = 80
rect2 = text2.get_rect()
rect2.centerx = 160
rect2.centery = 140
window.blit(text1, rect1)
window.blit(text2, rect2)
window.blit(text3, (250,215))
pygame.image.save(window, "/ram/temp.bmp")
os.system("tft_bmp /ram/temp.bmp")
time.sleep(1)
except:
sys.exit()
Alles anzeigen