Ich habe mich mal mit der äußerst schlechten Software StreamTorrent beschäftigt. Was sie so schlecht macht, ist im Einzelnen:
1. Streamtorrent läuft nur auf Windows Betriebssystemen. Wenn man es auf anderen Plattformen nutzen möchte, geht dies nur mit Hilfe eines Emulators (z.B: WINE unter Linux).
2. Streamtorrent akzeptiert nur einen einzigen Kommandozeilenparameter: die Streamadresse. Man kann es z.B. nicht im Vollbild starten.
3. Streamtorrent ist unstabil. Manchmal hängt es sich beim Puffern auf, so dass man es über den Taskmanager beenden muss (Prozess killen).
4. Streamtorrent kann nicht mit Hotkeys gesteuert werden, weshalb man auch keine bequemen Fernbedienungsmakros dafür einrichten kann. Die einzige Möglichkeit ist da die Emulation von Mausbewegungen und -klicks, wofür jedoch das Fenster an einer festen Position sein muss.
Um es dennoch halbwegs komfortabel als externen Player nutzen zu können, müssen folgende Schritte ausgeführt werden.
1. StreamTorrent installieren (Download der Installationsdatei z.B. von http://www.softpedia.com/dyn-postdownlo…=129131&t=4&i=1, aktuelle Version ist 1.0 Build 78)
2. Ein AutoIt/AutoHotkey Skript erstellen, welches die Stream-URL ("st://...") als Parameter übergeben bekommt. Das Skript öffnet den Stream mit StreamTorrent und maximiert das Fenster beim Start. Es sollte einen Hotkey anbieten, der das Skript und StreamTorrent beendet (Prozess killen).
3. Das Skript als externen Player in der playercorefactory.xml einrichten und dort eine entsprechende Regel für das st-Protokoll anlegen.
4. Einige Makros für die Fernbedienung erstelllen, um die Lautstärke zu ändern, in den Vollbildmodus zu wechseln und das Skript zu beenden (s.Hotkey in 2.).
Lösungsansatz für Windows:
Folgendes AutoIt Skript erstellen:
Opt("WinTitleMatchMode", 3)
$streamurl = ""
If $CmdLine[0] > 0 Then
$streamurl = $CmdLine[1]
Else
MsgBox(0, '', "No stream parameter",3)
Exit
EndIf
$decodedUrl = Base64Decode($streamurl)
$array = StringRegExp($decodedUrl, Chr(23) & '.(.*?)Š[a|A]', 2)
$channel = $array[1]
$WindowName = "StreamTorrent"
$Process = "streamtorrent.exe"
$Application = "[color=#ff0000]C:\Programme\StreamTorrent 1.0\StreamTorrent.exe[/color]"
HotKeySet("{F11}","Quit")
ShellExecute ( $Application ,$streamurl)
WinWait($WindowName)
WinSetState($WindowName,"",@SW_MINIMIZE)
WinWait($channel)
WinSetState($channel,"",@SW_MAXIMIZE)
ProcessWaitClose($Process)
Func Quit()
WinClose($channel)
WinClose($WindowName)
$runString = StringFormat("taskkill -im %s -f", $Process)
$run = Run($runString, "", @SW_HIDE)
Exit
EndFunc
Func Base64Decode($s)
Local $key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', _
$t = '', $p = -8, $a = 0, $c, $d, $len = StringLen($s)
For $i = 1 to $len
$c = StringInStr($key, StringMid($s,$i,1), 1) - 1
If $c < 0 Then ContinueLoop
$a = BitOR(BitShift($a, -6), BitAND($c, 63))
$p = $p + 6
If $p >= 0 Then
$d = BitAND(BitShift($a, $p), 255)
If $c <> 64 Then $t = $t & Chr($d)
$a = BitAND($a, 63)
$p = $p - 8
EndIf
Next
Return $t
EndFunc
Alles anzeigen
Skript als Player in die playercorefactory einfügen:
<player name="StreamTorrent" type="ExternalPlayer" audio="false" video="true">
<filename>[color=#ff0000]C:\Skripte\StreamTorrent.exe[/color]</filename>
<args>"{1}"</args>
<hidexbmc>true</hidexbmc>
<hideconsole>true</hideconsole>
<warpcursor>none</warpcursor>
</player>
...und die entsprechende Regel:
Ein Druck auf F11 beendet die ganze Anwendung. Die Dateipfade müssen evtl. angepasst werden. Die StreamTorrent.exe bezieht sich auf das kompilierte AutoIt Skript
Bei den FB-Makros sollte zur Lautstärkeregelung der Windows Mixer verwendet werden. Eine Taste sollte die Tastatureingabe F11 emulieren, um das Skript zu beenden und zu XBMC zurückzukehren. Wenn man richtiges Vollbild haben möchte und nicht nur ein maximiertes Fenster, sollte man eine Taste anlegen, die einen Mausklick in die Bildschirmmitte emuliert. Der Wechsel in den Vollbildmodus funktioniert erst, wenn der Stream bereits abgespielt wird. Da ich dieses Event nicht abfangen kann, muss man den Vollbildmodus manuell aktivieren.
Viel Spaß damit!