Vielleicht kann mir von Euch einer helfen.
Ausgangslage ist
eine MovieListe wird per FTP geladen.. das funktioniert auch.
downloaden kann man den Film auch.. funktioniert auch
VLC Player starten geht auch aber nur in Windows und Linux (auf dem MAC gehts nicht und kommt auch keine Fehlermeldung)
fest eingestellten Film abspielen funktioniert, ist aber nicht das was ich will.
Ich würde gern den Film aus der Liste wählen und nicht downloaden sondern auf der Platte über einen Netzwerkstream schauen.
Mit dem VLC sollte das doch gehen
kann mir da mal jemand helfen wie ich den Eintrag unter Filename ändern muss das ich einen Film aus der Liste wählen kann und übers Netzwerk mit dem VLC streamen kann?
mit Filename := 'listbox1.getselectedText' geht es ja nicht
auch geht der Eintrag nicht PlayerPath := FindDefaultExecutablePath('vlc');
und wie bekomm ich das auf dem MAC ans laufen? da wird der VLC garnicht gestartet was auf Windows und Linux funktioniert.
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
ComCtrls, StdCtrls, FileCtrl, IdFTP, Process, LCLProc, UTF8Process;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Listbox1: TListBox;
IdFTP1: TIdFTP;
Panel1: TPanel;
Panel3: TPanel;
SaveDialog1: TSaveDialog;
Splitter2: TSplitter;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
procedure FtpConnect ;
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FtpConnect ;
begin
idftp1.Username:='root';
idftp1.Password:='password';
idftp1.Host:='192.168.0.147';
idftp1.Passive:=True;
idftp1.Connect;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ftpConnect;
idftp1.ChangeDir('media/hdd/movie');
idftp1.List(Listbox1.Items,'*.ts',false);
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
datei{, Line}: String;
begin
datei := IdFTP1.DirectoryListing.Items[ListBox1.ItemIndex].FileName;
SaveDialog1.FileName := datei;
if SaveDialog1.Execute then begin
IdFTP1.Get(datei, SaveDialog1.FileName, true);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Player: TProcessUTF8;
Filename: String;
PlayerPath: String;
PlayerParams: String;
begin
Filename := 'ftp://user:passwort@192.168.0.147/media/hdd/movie/' + idftp1.DirectoryListing.Items[ListBox1.ItemIndex].FileName;
// PlayerPath := FindDefaultExecutablePath('vlc'); [color=#FF0000]geht nicht[/color]
PlayerPath := '/Applications/VLC.app/Contents/MacOS/VLC';
PlayerParams := '"' + Filename + '"';
Player:=TProcessUTF8.Create(nil);
try
Player.CommandLine := PlayerPath + ' ' + PlayerParams;
Player.Execute;
finally
Player.Free;
end;
end;
end.