Hallo liebe Community,
nachdem Ihr mir bei meinem ersten Problem so schnell, und kompetent weiterhelfen konntet, komme ich auch schon mit dem zweiten.
Ich bin dabei ein kleines Video Recorder Programm für Magenta TV zu schreiben. Dieses läuft eigentlich auch soweit ganz gut, bis auf das Ende. Als Aufnahmemedium benutze ich VLC.
Die Aufnahme funktioniert, nur gelingt es mir leider nicht die Aufnahme zu stoppen. Dass VLC, zumindest in der Windows Version, Probleme hat ist mir bekannt. Deswegen dachte ich
mir kille ich den Prozess einfach nach Ablauf der Zeit. Aber selbst dies geht leider nicht. Die Aufnahme läuft einfach weiter. Nun bin ich mir leider nicht sicher, ob das ein Problem
von VLC, Windows oder meiner bescheidenden Kenntnisse ist und bitte Euch um Hilfe. Ist der Timer für die Tonne oder der Kill.Befehl oder was ganz anderes?
Der Übersichtlichkeit halber, poste ich mal den ganzen Quelltext. Vielleicht ist ja schon an ganz anderer Stelle was schief gelaufen.
Vielen Dank fürs lesen!
nachdem Ihr mir bei meinem ersten Problem so schnell, und kompetent weiterhelfen konntet, komme ich auch schon mit dem zweiten.
Ich bin dabei ein kleines Video Recorder Programm für Magenta TV zu schreiben. Dieses läuft eigentlich auch soweit ganz gut, bis auf das Ende. Als Aufnahmemedium benutze ich VLC.
Die Aufnahme funktioniert, nur gelingt es mir leider nicht die Aufnahme zu stoppen. Dass VLC, zumindest in der Windows Version, Probleme hat ist mir bekannt. Deswegen dachte ich
mir kille ich den Prozess einfach nach Ablauf der Zeit. Aber selbst dies geht leider nicht. Die Aufnahme läuft einfach weiter. Nun bin ich mir leider nicht sicher, ob das ein Problem
von VLC, Windows oder meiner bescheidenden Kenntnisse ist und bitte Euch um Hilfe. Ist der Timer für die Tonne oder der Kill.Befehl oder was ganz anderes?
Der Übersichtlichkeit halber, poste ich mal den ganzen Quelltext. Vielleicht ist ja schon an ganz anderer Stelle was schief gelaufen.
Vielen Dank fürs lesen!
VB.NET-Quellcode
- Public Class Form1
- Dim Zaehler As Integer = 10
- Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
- End Sub
- Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs)
- End Sub
- Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs)
- End Sub
- Private Sub InitializeTimer()
- ' Timer-Intervall auf eine Sekunde festlegen
- Timer1.Interval = 1000
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- ' Set the caption bar text of the form.
- Me.Text = "Telekom IP Aufnahme"
- ListBox1.Items.Add("ARDHD")
- ListBox1.Items.Add("ZDFHD")
- ListBox1.Items.Add("3SATHD")
- ListBox1.Items.Add("PhoenixHD")
- ListBox1.Items.Add("RTL")
- ListBox1.Items.Add("PRO7")
- ListBox1.Items.Add("SAT1")
- ListBox1.Items.Add("VOX")
- ListBox1.Items.Add("ARTEHD")
- ListBox1.Items.Add("ZDFneoHD")
- ListBox1.Items.Add("ZDFinfoHD")
- ListBox1.Items.Add("KikaHD")
- ListBox1.Items.Add("WDRHD")
- ListBox1.Items.Add("NDRHD")
- ListBox1.Items.Add("HRHD")
- ListBox1.Items.Add("BRSüdHD")
- ListBox1.Items.Add("OneHD")
- ListBox1.Items.Add("SWRBWHD")
- ListBox1.Items.Add("SWRRPHD")
- ListBox1.Items.Add("MDRHD")
- ListBox1.Items.Add("RBB")
- ListBox1.Items.Add("Tagesschau24")
- ListBox1.Items.Add("SRHD")
- ListBox1.Items.Add("PRO7MAXXX")
- ListBox1.Items.Add("Kabel1")
- ListBox1.Items.Add("SIXX")
- ListBox1.Items.Add("SuperRTL")
- ListBox1.Items.Add("RTL2")
- ListBox1.Items.Add("RTLNitro")
- ListBox1.Items.Add("N-TV")
- ListBox1.Items.Add("SAT1Gold")
- ListBox1.Items.Add("RadioBremenTVHD")
- ListBox1.Items.Add("NDRHD")
- ListBox1.Items.Add("RTLPlus")
- ListBox1.Items.Add("ToggoPlus")
- ListBox1.Items.Add("VoxUp")
- ListBox1.Items.Add("ARDAlphaHD")
- ListBox1.Items.Add("Kabel1Doku")
- End Sub
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim p As New Process()
- Dim Kanal As String
- Dim Laufzeit As Integer
- Dim mca As String = ""
- Dim Jahr, Monat, Tag, Stunde, Minute, Sekunde As String
- Dim ProcessName As String = "vlc"
- Dim myProcesses() As Process = Process.GetProcesses
- ' Timer starten
- Timer1.Start()
- ' Dim dateiname As String
- Dim datum As String
- Timer1.Interval = 1000
- Kanal = ListBox1.SelectedItem
- Select Case Kanal
- Case "ARDHD"
- mca = "rtp://87.141.215.251@232.0.20.35:10000" '
- Case "ZDFHD"
- mca = "rtp://87.141.215.251@232.0.20.234:10000" '
- Case "3SATHD"
- mca = "rtp://87.141.215.251@232.0.20.2:10000" '
- Case "ARTEHD"
- mca = " rtp://87.141.215.251@232.0.20.10:10000" '
- Case "ZDFneoHD"
- mca = "rtp://87.141.215.251@232.0.20.236:10000" '
- Case "RBB"
- mca = "rtp://87.141.215.251@232.0.10.130:10000"
- Case "ZDFinfoHD"
- mca = "rtp://87.141.215.251@232.0.20.237:10000" '
- Case "OneHD"
- mca = "rtp://87.141.215.251@232.0.20.49:10000" '
- Case "KikaHD"
- mca = "rtp://87.141.215.251@232.0.20.85:10000" '
- Case "PhoenixHD"
- mca = " rtp://87.141.215.251@232.0.20.116:10000" '
- Case "NDRHD"
- mca = "rtp://87.141.215.251@232.0.20.104:10000" '
- Case "RadioBremenTVHD"
- mca = "rtp://87.141.215.251@232.0.20.125:10000" '
- Case "WDRHD"
- mca = "rtp://87.141.215.251@232.0.20.222:10000" '
- Case Is = "NDRHD"
- mca = "rtp://87.141.215.251@232.0.20.104:10000" '
- Case "HRHD"
- mca = "rtp://87.141.215.251@232.0.20.71:10000" '
- Case "BRSüdHD"
- mca = "rtp://87.141.215.251@232.0.20.26:10000" '
- Case "SWRBWHD"
- mca = " rtp://87.141.215.251@232.0.20.202:10000" '
- Case "SWRRPHD"
- mca = "rtp://87.141.215.251@232.0.20.203:10000" '
- Case "MDRHD"
- mca = "rtp://87.141.215.251@232.0.20.93:10000" '
- Case Is = "Tagesschau 24"
- mca = "rtp://87.141.215.251@232.0.20.205:10000" '
- Case "SRHD"
- mca = "rtp://87.141.215.251@232.0.20.200:10000" '
- Case "RTL"
- mca = "rtp://87.141.215.251@232.0.10.135:10000" '
- Case "Pro7"
- mca = "rtp://87.141.215.251@232.0.10.120:10000" '
- Case "Kabel1"
- mca = "rtp://87.141.215.251@232.0.10.82:10000" '
- Case "SIXX"
- mca = "rtp://87.141.215.251@232.0.10.157:10000" '
- Case "SuperRTL"
- mca = "rtp://87.141.215.251@232.0.10.201:10000" '
- Case "RTL2"
- mca = "rtp://87.141.215.251@232.0.10.140:10000" '
- Case "VOX"
- mca = "rtp://87.141.215.251@232.0.10.221:10000" '
- Case "RTLNitro"
- mca = "rtp://87.141.215.251@232.0.10.143:10000" '
- Case "N-TV"
- mca = " rtp://87.141.215.251@232.0.10.111:10000" '
- Case "SAT1"
- mca = "rtp://87.141.215.251@232.0.10.146:10000" '
- Case "SAT1Gold"
- mca = "rtp://87.141.215.251@232.0.10.149:10000" '
- Case "Pro7MAXX"
- mca = "rtp://87.141.215.251@232.0.10.122:10000" '
- Case "RTL Plus"
- mca = "rtp://87.141.215.251@232.0.10.240:10000" '
- Case "Toggo Plus"
- mca = "rtp://87.141.215.251@232.0.11.7:10000" '
- Case "VoxUp"
- mca = " rtp://87.141.215.251@232.0.10.239:10000" '
- Case "ARD Alpha HD"
- mca = "rtp://87.141.215.251@232.0.20.9:10000" '
- Case "Kabel 1 Doku"
- mca = "rtp://87.141.215.251@232.0.11.2:10000" '
- End Select
- Kanal = ListBox1.SelectedItem()
- Laufzeit = TextBox1.Text
- Laufzeit = Convert.ToInt32(Laufzeit)
- MsgBox("Du hast: " + Kanal + " und " + Laufzeit.ToString + " Minuten Laufzeit ausgewählt.")
- 'Umrechnung in Millisekunden
- Laufzeit = Laufzeit * 60000
- p.StartInfo.FileName = ("L:\Programme\VLC\vlc.exe")
- ' Datum und Uhrzeit ermitteln
- datum = Date.Now.ToString
- Jahr = DateAndTime.Year(datum)
- Monat = DateAndTime.Month(datum)
- If Monat < 10 Then Monat = "0" & Monat
- Tag = DateAndTime.Day(datum)
- If Tag < 10 Then Tag = "0" & Tag
- Stunde = DateAndTime.Hour(datum)
- If Stunde < 10 Then Stunde = "0" & Stunde
- Minute = DateAndTime.Minute(datum)
- If Minute < 10 Then Minute = "0" & Minute
- Sekunde = DateAndTime.Second(datum)
- If Sekunde < 10 Then Sekunde = "0" & Sekunde
- datum = Jahr & Monat & Tag & Stunde & Minute & Sekunde
- p.StartInfo.Arguments = ("--qt-start-minimized --sout-file-format " & mca & " --sout=#file{dst=" & """F:\VB_Projekte\Telekom Recording\Aufnahmen\Aufnahme_""" & Kanal & "_" & datum & ".mpg}")
- ' Aufnahme starten
- p.StartInfo.CreateNoWindow = True
- p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
- p.Start()
- 'Timer setzen und Prozess nach Ablauf der Zeit killen
- Timer1.Interval = Laufzeit
- For Each proc As Process In myProcesses
- If InStr(proc.ProcessName.ToLower, ProcessName.ToLower) Then
- proc.Kill()
- End If
- Next
- MsgBox("Aufnahme erferfolgreich abgeschlossen.")
- End Sub
- Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
- End Sub
- End Class