Windows Media Player Control einsetzen funktioniert nicht

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Windows Media Player Control einsetzen funktioniert nicht

    ausgelagert aus Windows Media Player Control einsetzen ~VaporiZed

    Ich habe das folgende Problem:

    Quellcode

    1. AxWindowsMediaPlayer1.play()


    "play" ist kein Member von ....

    Wo liegt mein Fehler?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    Roland schrieb:

    "play" ist kein Member von ....
    wovon? Das wäre hilfreich für eine Analyse des Problems.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Das funktioniert auch nicht.

    play ist kein Member von Controls

    VB.NET-Quellcode

    1. ​Imports System.IO
    2. Imports WMPLib
    3. Public Class Form3
    4. Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    5. Dim objStreamReader As StreamReader
    6. Dim strLine As String
    7. Dim i As Integer
    8. Dim video_file As String
    9. AxWindowsMediaPlayer1.uiMode = "none"
    10. objStreamReader = New StreamReader("avi_play_info.temp")
    11. strLine = objStreamReader.ReadLine
    12. objStreamReader.Close()
    13. objStreamReader = New StreamReader("grid_export.temp")
    14. For i = 1 To CInt(strLine) + 1
    15. strLine = objStreamReader.ReadLine
    16. Next i
    17. objStreamReader.Close()
    18. video_file = Microsoft.VisualBasic.Left(strLine, InStr(strLine, ".avi") + 3)
    19. AxWindowsMediaPlayer1.URL = video_file
    20. AxWindowsMediaPlayer1.Controls.play()
    21. End Sub

    Roland schrieb:

    VB.NET-Quellcode

    1. For i = 1 To CInt(strLine) + 1
    2. strLine = objStreamReader.ReadLine
    3. Next i
    Erkläre mir mal diesen Code, ausführlich bitte.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!
    (1) In der Datei "grid_export.temp" ist eine Liste von AVIs.
    (2) In der Datei " avi_play_info.temp" ist die Nummer abgelegt, des Avis aus (1). Anders formuliert: Es soll das AVI, das an der Position x steht abgespielt werden.

    Post #5: Bis zur Zeile 31 funktioniert alles, wie es soll!

    Quellcode

    1. ​AxWindowsMediaPlayer1.Ctlcontrols.play()


    Super! Das läuft! ... Danke!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Roland“ ()

    RodFromGermany schrieb:

    Erkläre mir mal diesen Code, ausführlich bitte.
    Ich hatte da noch eine noch nicht von Dir beantwortete Frage.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!
    ​(1) In der Datei "grid_export.temp" ist eine Liste von AVIs.(2) In der Datei " avi_play_info.temp" ist die Nummer abgelegt, des Avis aus (1). Anders formuliert: Es soll das AVI, das an der Position x steht abgespielt werden.


    Doch ... Post #08

    ergänzen kann man noch:

    (3) Durch die For Schleife werden genau soviele Zeilen eingelesen, damit die letzte eingelesene Zeile den passenden Inhalt enthält.
    @Roland Da hast Du aber Glück, dass das funktioniert, denn Du verwendest die konvertierte String-Variable gleichzeitig als Name der zu spielenden Datei.
    Besser wäre es, die Anzahl der Zeilen auszulesen, ein NumericUpDown mit diesem Wert als Maximum zu belegen und dann den .Value dieses NumericUpDowns als Zielwert zu verwenden. So entfiele die Verwendung der "avi_play_info"-DAtei.
    Aber dann kannst Du auch gleich den Inhalt der "grid_export"-Datei auslesen und in einer ComboBox anzeigen.
    Das wäre User-freundlich.
    Der Sinn der Zeile

    VB.NET-Quellcode

    1. video_file = Microsoft.VisualBasic.Left(strLine, InStr(strLine, ".avi") + 3)
    erschließt sich mir nicht so richtig.
    Wenn Du die Extension eines Dateinamens abschneiden willst, verwende die Prozeduren des mächtigen IO-Namespaces:

    VB.NET-Quellcode

    1. video_file = IO.Path.GetFileNameWithoutExtension(strLine)

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!