Autor Beitrag
Skiller-1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 100

Win XP | Debian | Ubuntu
C# | PHP | VB.NET
BeitragVerfasst: Mi 11.02.09 17:54 
Hi,
ich versuche gerade ein Programm zu schreiben mit dem ich von meinen lokalen FTP-Server ( ne Festplatte die an meinen Router hängt ) Multimediadateien abspielen kann (*.mp3, *.wma, *.avi, *.mpeg usw.). Zurzeit bin ich soweit das ich auf den Server zugreifen kann und auch durch die Ordnernavigieren kann. ( Habe mich dazu bisher mit der FtpWebRequest - Klasse beschäftigt )
Nun meine eigentlich Frage wie kann ich jetzt die Dateien am besten abspielen ohne die Datei zuvor komplett downloaden zu müssen? Ich habe ja irgendwie an einen Stream gedacht der gepuffert wird.

Meine groben Überlegungen bisher:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("serverurl" + "Dateipfad");
request.Method=WebRequestMethods.Ftp.DownloadFile;
WebResponse response = request.GetResponse();

// Irgentwie verarbeiten mit :
response.GetResponseStream();


Sind nur erste flüchtige Gedanken!!!
Hat einer ne Idee wies klappen könnte?


Moderiert von user profile iconKha: Topic aus IO, XML und Registry verschoben am Fr 13.02.2009 um 11:32

_________________
~ Wer Rechtschreibfehler findet darf sie behalten ~
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 11.02.09 19:26 
Ja, das sollte so schon funktionieren. Als Allererstes musst du dir aber mal einen Player suchen, der Streams abspielen kann.

_________________
>λ=
Skiller-1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 100

Win XP | Debian | Ubuntu
C# | PHP | VB.NET
BeitragVerfasst: Mi 11.02.09 19:37 
Hat da jemand nen guten vorschlag bezüglich nen player der Streams abspielen kann also ich meine damit ne Biblithek oder ne Klasse bzw. ein .NET - Komponente. Was ist mit dem MediaElement von WPF ob das klappen könnte? Kann einer mir noch nen Tipp geben wie ich das genau anstellen sollte mit dem Stream bzw. eigentlich meine ich, wie ich den richtig Puffere ohne allerdings die Daten dauerhaft zu speichern.

_________________
~ Wer Rechtschreibfehler findet darf sie behalten ~
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 11.02.09 19:54 
user profile iconSkiller-1988 hat folgendes geschrieben Zum zitierten Posting springen:
Was ist mit dem MediaElement von WPF ob das klappen könnte?
Einen Versuch wäre es wert, MediaElement.Source ist jedenfalls vom Typ Uri. Ansonsten könntest du dir DirectShow anschauen, das ist auf jeden Fall mächtig genug.

_________________
>λ=
Skiller-1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 100

Win XP | Debian | Ubuntu
C# | PHP | VB.NET
BeitragVerfasst: Fr 13.02.09 08:56 
Hi,
habe das jetzt mal Versucht mit zwei Varianten.
Wobei ich mich noch nicht richtig an DirectShow herangetraut habe da ich gesehen habe das es nicht nur sehr mächtig in der Funktionalität ist sondern auch mächtig kompliziert zu verwenden :)

Variante eins mit dem MediaElement von WPF :

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
            
 Uri srcUri = new Uri(@"ftp://zielserver/datei.endung");

 mediaElement.Source = srcUri;
 mediaElement.LoadedBehavior = MediaState.Manual;
 mediaElement.Play();


Variante zwei mit der Video - Klasse von Microsoft.DirectX.AudioVideoPlayback :

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
            
            Video video = new Video(@"ftp://zielserver/datei.endung"false);
            video.CurrentPosition = 1;
            video.Owner = pictureBox1;
            video.Play();


bzw. Video.Open(Uri adress); habe ich auch schon probiert.

Mein Problem ist das beide Varianten mit lokalen Files die auf meinen System liegen funktionieren, allerdings wenn ich wie ich es ja eigentlich will eine Uri zu den File auf meinen FTP-Server angebe passiert einfach gar nichts, nicht einmal eine Fehlermeldung.
Hat einer eine Idee oder muss ich wirklich mich in DirectShow einarbeiten und versuchen einen gepufferten Stream wiederzugeben.

_________________
~ Wer Rechtschreibfehler findet darf sie behalten ~
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 13.02.09 12:12 
Hallo Skiller-1988,

kannst du denn deine FTP-Datei mit dem Windows Media Player (Url öffnen) abspielen?
Skiller-1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 100

Win XP | Debian | Ubuntu
C# | PHP | VB.NET
BeitragVerfasst: Fr 13.02.09 14:01 
Nein das geht leider nicht.
Allerdings der VLC - Player kann es.

_________________
~ Wer Rechtschreibfehler findet darf sie behalten ~