Hotkey Lokal Befehl

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

1 Like

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

:smiley: :+1: super, jetzt hat es funktioniert.
Das war mein Fehler…

Lieben Dank Tondose :+1:

1 Like

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.
Unbenannt