Video im Programm einfügen

  • Allgemein

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Pcleage.

    Video im Programm einfügen

    Kann man ein Video im Programm so integrieren dass, es mit dem Standart Media-Player abgespielt wird?
    Wenn Mann auf den "Button1" klickt sollte es sich im Programmfestner oder mit dem bereits
    installiertem Windows Media Player abspielen lassen. Ich konnte bisher aber noch keine gute Lösung dazu finden.
    Wenn du es über die Programmresourcen machen würdest, müsstest du erst die Videodatei in den Temp-Ordner extrahieren und dann über Process.Start("Der\Pfad\Zu\Deiner\Datei.mp4") das Video starten. Dabei wird automatisch der Standardmediaplayer ausgewählt.
    Erstmal Danke das du so schnell geantwortet hast. Es funktioniert Super! Ich hatte angfangs eigentlich nicht gedacht das es funktionieren würde weil ich genau das gleiche was du vorgeschlagen hast, mit anderen Mediendateien (Bilder) nicht so ging :huh:. Ein Glück das es mit einer MP4 Funktoniert! :thumbsup: .
    --------------------------------------------------------------------------------------------------
    Falls jemand nach dem Funktionierenden "Code" fragt will ich mal nicht so pingelig sein:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. My.Computer.FileSystem.WriteAllBytes(My.Computer.FileSystem.SpecialDirectories.Temp & "\Meinvideo.mp4", My.Resources.MeinVideo, False)
    3. Process.Start(My.Computer.FileSystem.SpecialDirectories.Temp & "\meinvideo.mp4")
    Schonmal vom System.IO-Namespace gehört? Das ist etwas sauberer, wenn es um Dateioperationen geht. Dein Code, wenn du den System.IO-Namespace verwendest, würde so aussehen:

    VB.NET-Quellcode

    1. Dim FilePath As String = Path.Combine(Path.GetTempPath(), "MeinVideo.mp4")
    2. File.WriteAllBytes(FilePath, My.Resources.BeispielVideo)
    3. Process.Start(FilePath)

    Das Selbe geht übrigens auch mit Bildern, da musst du aber anders vorgehen:

    VB.NET-Quellcode

    1. Dim FilePath As String = Path.Combine(Path.GetTempPath(), "MeinBild.png")
    2. File.WriteAllBytes(FilePath, CType((New ImageConverter).ConvertTo(My.Resources.BeispielBild, GetType(Byte())), Byte()))
    3. Process.Start(FilePath)
    @Pcleage

    Nur kurz eine kleine Erklärung warum du My. nicht nehmen sollst.Der Grund ist simpel: Solltest du irgendwann mal anfangen in C# zu proggen,wirst du merken das es My gar nicht gibt.Deshalb nutze immer Alternativen außer bei My.Resources und My.Settings !
    Beispiel:

    VB.NET-Quellcode

    1. My.Computer.FileSystem.WriteAllText("C\bla.txt", "TEXT", True)

    Da solltest du nehmen:

    VB.NET-Quellcode

    1. System.IO.File.WriteAllText("C:\bla.txt", "TEXT)


    Ich hoffe ich konnte dir erklären warum du My nicht nutzen sollst :)

    Greet iEi und noch einen schönen Sonntag Abend :)
    Es ist nicht nur die Sache mit C#.

    Es gibt Frameworkklassen, die die selben Funktionalitäten als Methoden mit einer größeren Anzahl an Überladungen anbieten und häufig an die Verwendung mächtiger Objekte gebunden sind.
    Dies ist beim My-Namespace jedoch nicht der Fall.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @iEi
    Wenn man den My-Namespace benutzt, muss man ja nicht gleichzeitig vergessen, dass es den IO-Namespace gibt. In C# muss man anders Programmieren als in VB, sonst wäre ja eine Sprache überflüssig. Deswegen zieht das Argument von wegen man braucht es, wenn man irgendwann mal mit C# programmieren will, überhaupt nicht.

    @Trade
    Der My-Namespace hat bei den meisten/den Relevanten/bei den Methoden, wo ich geguckt habe (man nehme die Kopieren-, Löschen-,...Methode), mehr Funktionen/Überladungen als die Methoden des IO-Namespace. Informierst du dich eig., bevor du hier was schreibst?
    Und es ist ja nicht so:
    IO-Namespace oder My-Namespace sondern IO-Namespace und My-Namespace.

    Der My-Namespace ist da, ob ihr wollt oder nicht. Wieso sieht das keiner als Grund für Visual Basic? Weils bei C# nicht da ist? Wenn ich VB programmiere, dann programmiere ich VB. C# sollte man dann nur Übersetzten können, und das ist ja wohl kein Problem, ob mit My-Namespace oder ohne.

    Es gibt meiner Meinung nach keinen Grund, den My-Namespace nicht zu benutzen, außer das es immer mehr Schreibarbeit ist und deswegen benutzte ich doch meistens den IO-Namespace. Aber für Anfänger finde ich es gerade leicht verständlich, weil der My-Namespace gut strukturiert ist:
    My - Der Alias
    Computer - Ich will etwas auf meinem Computer machen
    Filesystem - Ich will etwas mit Dateien machen
    [Methode] - Das, was ich eigentlich machen will


    Jeder sollte benutzen, was er selbst benutzen will oder sich angewöhnt hat. Enjoy
    Mfg
    Vincent

    @VincentTB: Vergiss nicht, ich hab hier nicht nur von System.IO geredet ;) In der Tat hat der My-Namespace hier sogar nen Vorteil, bei DirectoryInfo in System.IO, gibt es die CopyTo-Methode nämlich nicht.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich hab noch ein Tutorial dazu gemacht, wie das einheitlich mit jedem Dateityp geht, falls dich das interessiert: vb-paradise.de/allgemeines/sou…-eingebetteten-ressourcen
    Okay. Erstmal danke für eure Hilfe. Ich möchte aber noch äußern: Früher hab ich mal aus Spaß mit programmieren "angefangen" dann aber wieder irgentwie wieder aufgehört.
    Problem ist aber: Das ich erst seit ein paar Wochen jetzt richtig programmiere. Jezt kann ich mich hier aber richtig außtoben. :thumbsup: . Alles was ich dann gemacht habe stelle ich anschließent auf meine Community Später können die User dann noch Wünsche äußern wie: Welches Programm sie wollen,
    Was es kann , und wie der Style aussehen soll.


    (Dauert nicht mehr lange, dann mach ich das freie Download-Portal wieder auf) :thumbup: