Guten Abend zusammen,
gibt es eine Möglichkeit / Befehl
via Hotkey eine Datei (mp3) aus einem Ordner in einen Player zu laden ?
Beispiel: PLAYER 1-1 LOAD FILE PATH C:\xxx.mp3
Danke für eure Hilfe
Guten Abend zusammen,
gibt es eine Möglichkeit / Befehl
via Hotkey eine Datei (mp3) aus einem Ordner in einen Player zu laden ?
Beispiel: PLAYER 1-1 LOAD FILE PATH C:\xxx.mp3
Danke für eure Hilfe
Ja, geht mittels eines Skripts, aber nicht mehr heute Abend.
Erschöpfte Grüße
TSD
Probiere es mit:
{
+------------------------------------------------------------------------+
| |
| Skript zum direkten Belegen eines Players mit einem File |
| |
| Version 1.0, © 2020 Tondose (https://community.mairlist.com/u/tondose) |
| |
+------------------------------------------------------------------------+
• Das Skript stellt einen Remote-Befehl PLAYER n-m LOADFILE <File> mit
n: Nummer der Playlist (beginnend mit 1),
m: Nummer des Players (beginnend mit 1) und
<File>: Name des Files mit Extension
bereit.
Beispiel: PLAYER 1-2 LOADFILE Test.mp3
lädt das File "Test.mp3" in den Player 2 der ersten Playlist.
Der Pfad zum File wird unter "PATH" im Kopf des Skripts angegeben. Will man
individuelle Pfade handhaben, so schreibt man unter
const
PATH = '';
und gibt den Pfad im Befehl an, also etwa
PLAYER 1-2 LOADFILE C:\Path\to\file\Test.mp3
}
const
PATH = 'C:\Path\to\file\'; // <-- Hier den Pfad zum File eintragen
var
PlaylistIndex, PlayerIndex: Integer;
FileName: string;
Item : IFilePlaylistItem;
procedure OnExecuteCommand(Command: string);
begin
if (copy(Command, 1, 6) = 'PLAYER')
AND (copy(Command, 12, 8) = 'LOADFILE') then begin
ExecuteCommand('BUTTON.2 ON');
FileName := copy(Command, 21, Length(Command) - 20);
ExecuteCommand('BUTTON.4 TEXT ' + Copy(Command, 8, 1));
PlaylistIndex := StrToInt(Copy(Command, 8, 1)) - 1;
PlayerIndex := StrToInt(Copy(Command, 10, 1)) - 1;
PlaybackControl(PlaylistIndex).GetPlayer(PlayerIndex).
Open(Factory.CreateFilePlaylistItem(PATH + FileName,
[fitNativeTags]), nil, nil);
end;
end;
begin
end.
Geladene Grüße
TSD
Hallo Tondose
vielen Dank für deine schnelle Hilfe.
Leider war es zu erwarten das ich eine Fehlermeldung erhalte.
Ich denke das der Eintrag mit dem Pfad nicht richtig ist ,
oder ich es falsch geschrieben habe oder oder…
Ich habe den Hotkey Befehl so erteilt:
ALT+F1 = PLAYER 1-1 LOADFILE C:\Musik\Test.mp3
Das Skript so wie du beschrieben:
Das als Hintergrund-Script hinzugefügt.
Beim laden kommt dann die obige Fehlermeldung…
Wie meinst Du das jetzt?
Du mußt schon (danke für den Screenshot) den erklärenden Kopf des Skripts komplett oder gar nicht übernehmen. In Deinem Falle hast Du ein
}
übriggelassen. Speichere das Skript so ab wie ich es gepostet habe oder lösche die geschweifte Klammer weg. Dann sehen wir weiter.
Präzise Grüße
TSD
Sieht das gepostete Skript bei Euch auch so rot aus? Das hat mich so geblendet, daß ich zwei Zeilen übersehen habe, die da nur zum Testen drinne gewesen waren. Tut aber der Funktion keinen Abbruch.
@TheVoice: Du kannst die beiden Zeilen, in denen BUTTON
vorkommt, problemlos löschen. Das korrigierte Skript sieht so aus:
{
+------------------------------------------------------------------------+
| |
| Skript zum direkten Belegen eines Players mit einem File |
| |
| Version 1.1, © 2020 Tondose (https://community.mairlist.com/u/tondose) |
| |
+------------------------------------------------------------------------+
• Das Skript stellt einen Remote-Befehl PLAYER n-m LOADFILE <File> mit
n: Nummer der Playlist (beginnend mit 1),
m: Nummer des Players (beginnend mit 1) und
<File>: Name des Files mit Extension
bereit.
Beispiel: PLAYER 1-2 LOADFILE Test.mp3
lädt das File "Test.mp3" in den Player 2 der ersten Playlist.
Der Pfad zum File wird unter "PATH" im Kopf des Skripts angegeben. Will man
individuelle Pfade handhaben, so schreibt man unter
const
PATH = '';
und gibt den Pfad im Befehl an, also etwa
PLAYER 1-2 LOADFILE C:\Path\to\file\Test.mp3
Changelog:
V 1.1:
[*] Code aufgeräumt
V 1.0:
[*] Skript erstellt
}
const
PATH = 'C:\Path\to\file\'; // <-- Hier den Pfad zum File eintragen
var
PlaylistIndex, PlayerIndex: Integer;
FileName: string;
Item : IFilePlaylistItem;
procedure OnExecuteCommand(Command: string);
begin
if (copy(Command, 1, 6) = 'PLAYER')
AND (copy(Command, 12, 8) = 'LOADFILE') then begin
FileName := copy(Command, 21, Length(Command) - 20);
PlaylistIndex := StrToInt(Copy(Command, 8, 1)) - 1;
PlayerIndex := StrToInt(Copy(Command, 10, 1)) - 1;
PlaybackControl(PlaylistIndex).GetPlayer(PlayerIndex).
Open(Factory.CreateFilePlaylistItem(PATH + FileName,
[fitNativeTags]), nil, nil);
end;
end;
begin
end.
Überflüssige Grüße
TSD
Ich habe nur das in die .mls eingebunden und funktioniert.
Den oberen Teil hatte ich nicht kopiert da ich dachte er sei nur Erklärung.
Also mit nur diesem Abschnitt funktioniert es einwandfrei.