DirectX AudioVideoPlayback Problem

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von fufu.

    DirectX AudioVideoPlayback Problem

    Hallo,
    Ich habe mir einen Media Player mit DirectX AudioVideoPlayback programmiert. Mit diesem Tutorial: Audio/Video mit DirectX

    Nun zu meinem Problem: Wie kann ich Audio und Video in einem Player bringen? Sodass ich Audio und Video Dateien abspielen kann? Ich hoffe ihr könnt mir helfen. Danke schon mal im vorraus:D

    MFG
    Downloader17
    da musst du wohl selber überlegen :P
    beim Einlesen der Datei einfach über IO.Path.GetExtension die Dateiendung prüfen und wenn es ein Video ist über New Video laden und anschließend laufen lassen, andernfalls über Audio...

    noch eine Möglichkeit(nicht empfohlen) wäre das ganze in einem Try Catch Block bei Audio zu probieren, wenn eine Exception kommt noch Video probieren und jenachdem wo es weiter kommt abspielen lassen..
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Hallo,
    mein kompletter Code sieht so aus:

    VB.NET-Quellcode

    1. Imports Microsoft.DirectX
    2. Imports Microsoft.DirectX.AudioVideoPlayback
    3. Imports System.IO
    4. Public Class Form1
    5. Dim Volume As Boolean = True
    6. Private WithEvents AudioDatei As Audio
    7. Private WithEvents VideoDatei As Video
    8. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    9. ToolStripStatusLabel3.Enabled = False
    10. With Me.TrackBar2
    11. .Maximum = 7500
    12. .Minimum = 0
    13. .LargeChange = 1000
    14. .SmallChange = 100
    15. .TickFrequency = 1000
    16. .Value = .Maximum
    17. End With
    18. End Sub
    19. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    20. Try
    21. Me.Timer1.Enabled = True
    22. AudioDatei.Play()
    23. ZeitTimer.Start()
    24. Catch ex As Exception
    25. End Try
    26. Try
    27. Me.Timer2.Enabled = True
    28. VideoDatei = New Video(TextBox1.Text)
    29. VideoDatei.Owner = Panel1
    30. VideoDatei.Play()
    31. ZeitTimer.Start()
    32. Catch ex As Exception
    33. End Try
    34. End Sub
    35. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    36. Try
    37. AudioDatei.Pause()
    38. Catch ex As Exception
    39. End Try
    40. Try
    41. VideoDatei.Pause()
    42. Catch ex As Exception
    43. End Try
    44. End Sub
    45. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    46. Try
    47. AudioDatei.Stop()
    48. Catch ex As Exception
    49. End Try
    50. Try
    51. VideoDatei.Stop()
    52. Catch ex As Exception
    53. End Try
    54. End Sub
    55. Private Sub DateiÖffnenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateiÖffnenToolStripMenuItem.Click
    56. Try
    57. If Me.OpenFileDialog1.ShowDialog() <> DialogResult.OK Then
    58. Return
    59. End If
    60. Dim FileName As String = Me.OpenFileDialog1.FileName
    61. If Not AudioDatei Is Nothing Then
    62. AudioDatei.Dispose()
    63. End If
    64. ' Laden der ausgewählten Audiodatei.
    65. AudioDatei = New Audio(FileName)
    66. With Me.TrackBar1
    67. .Minimum = 0
    68. .Maximum = CInt(AudioDatei.Duration)
    69. .LargeChange = .Maximum \ 10
    70. .SmallChange = .Maximum \ 100
    71. End With
    72. Dim Song As String, artist As String
    73. Dim datei As String, fs As FileStream, br As BinaryReader
    74. datei = OpenFileDialog1.FileName
    75. fs = New FileStream(datei, FileMode.Open, FileAccess.Read)
    76. br = New BinaryReader(fs)
    77. Dim file As New FileInfo(datei)
    78. Dim tagposition As Integer = (file.Length - 128)
    79. fs.Position = tagposition + 3
    80. Song = br.ReadChars(30)
    81. ToolStripStatusLabel1.Text = Song
    82. fs.Position = tagposition + 33
    83. artist = br.ReadChars(30)
    84. ToolStripStatusLabel1.Text = artist
    85. ToolStripStatusLabel3.Enabled = True
    86. Catch ex As Exception
    87. OpenFileDialog1.ShowDialog()
    88. TextBox1.Text = OpenFileDialog1.FileName
    89. End Try
    90. End Sub
    91. Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
    92. Try
    93. Dim SourceControl As TrackBar = DirectCast(sender, TrackBar)
    94. Me.ToolTip1.SetToolTip(SourceControl, CStr(SourceControl.Value) & " s")
    95. AudioDatei.CurrentPosition = SourceControl.Value
    96. Catch ex As Exception
    97. End Try
    98. Try
    99. Dim SourceControl As TrackBar = DirectCast(sender, TrackBar)
    100. Me.ToolTip1.SetToolTip(SourceControl, CStr(SourceControl.Value) & " s")
    101. VideoDatei.CurrentPosition = SourceControl.Value
    102. Catch ex As Exception
    103. End Try
    104. End Sub
    105. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    106. Try
    107. Me.TrackBar1.Value = CInt(AudioDatei.CurrentPosition)
    108. Catch ex As Exception
    109. End Try
    110. End Sub
    111. Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
    112. Try
    113. If Volume = True Then
    114. AudioDatei.Volume = -7500
    115. Volume = False
    116. Button6.BackgroundImage = ImageList1.Images(0)
    117. Button6.BackgroundImageLayout = ImageLayout.Center
    118. TrackBar2.Enabled = False
    119. Else
    120. AudioDatei.Volume = 0
    121. Volume = True
    122. Button6.BackgroundImage = ImageList1.Images(1)
    123. Button6.BackgroundImageLayout = ImageLayout.Center
    124. TrackBar2.Enabled = True
    125. End If
    126. Catch ex As Exception
    127. End Try
    128. Try
    129. If Volume = True Then
    130. VideoDatei.Audio.Volume = -7500
    131. Volume = False
    132. Button6.BackgroundImage = ImageList1.Images(0)
    133. Button6.BackgroundImageLayout = ImageLayout.Center
    134. TrackBar2.Enabled = False
    135. Else
    136. VideoDatei.Audio.Volume = 0
    137. Volume = True
    138. Button6.BackgroundImage = ImageList1.Images(1)
    139. Button6.BackgroundImageLayout = ImageLayout.Center
    140. TrackBar2.Enabled = True
    141. End If
    142. Catch ex As Exception
    143. End Try
    144. End Sub
    145. Private Sub TrackBar2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar2.Scroll
    146. Try
    147. Dim SourceControl As TrackBar = DirectCast(sender, TrackBar)
    148. AudioDatei.Volume = -SourceControl.Maximum + SourceControl.Value
    149. Catch ex As Exception
    150. End Try
    151. Try
    152. Dim SourceControl As TrackBar = DirectCast(sender, TrackBar)
    153. VideoDatei.Audio.Volume = -SourceControl.Maximum + SourceControl.Value
    154. Catch ex As Exception
    155. End Try
    156. End Sub
    157. Private Sub ZeitTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ZeitTimer.Tick
    158. Try
    159. Dim Länge As String = TimeSpan.FromSeconds(AudioDatei.Duration).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(AudioDatei.Duration).Seconds.ToString("00"))
    160. Dim CurrentPos As String = TimeSpan.FromSeconds(AudioDatei.CurrentPosition).Minutes.ToString("00") & ":" & (TimeSpan.FromSeconds(AudioDatei.CurrentPosition).Seconds.ToString("00"))
    161. Label1.Text = CurrentPos & " / " & Länge & " "
    162. Catch ex As Exception
    163. End Try
    164. Try
    165. Dim Länge As String = TimeSpan.FromSeconds(VideoDatei.Duration).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(AudioDatei.Duration).Seconds.ToString("00"))
    166. Dim CurrentPos As String = TimeSpan.FromSeconds(VideoDatei.CurrentPosition).Minutes.ToString("00") & ":" & (TimeSpan.FromSeconds(AudioDatei.CurrentPosition).Seconds.ToString("00"))
    167. Label1.Text = CurrentPos & " / " & Länge & " "
    168. Catch ex As Exception
    169. End Try
    170. End Sub
    171. Private Sub DateiInfosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateiInfosToolStripMenuItem.Click
    172. Form2.Show()
    173. End Sub
    174. Private Sub EinstellungenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EinstellungenToolStripMenuItem.Click
    175. Form3.Show()
    176. End Sub
    177. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    178. Try
    179. Me.TrackBar1.Value = CInt(VideoDatei.CurrentPosition)
    180. Catch ex As Exception
    181. End Try
    182. End Sub
    183. End Class


    Er spielt jetzt die Videos ab aber man hört nur den Ton und sieht nicht das Video.
    Audio spielt er ab. Was habe ich da falsch gemacht?

    MFG
    Downloader17
    video ist in diesem Fall videodatei ausm TuT

    Datenquelle kann vieles sein textbox, listbox, label usw. <<< der Inhalt kommt vom openfilediolog


    Playbutton

    VB.NET-Quellcode

    1. video = New Video(datenQuelle)
    2. video.Owner = Panel1
    3. video.Play()
    4. Timer1.Start()


    @Downloader17 warum nutzt du keine if abfrage ob video oder audio?

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

    Einen so alten Thread zu kapern hat keinen Sinn. Bitte erstelle für deine Frage deinen eigenen Thread. Nach dieser Zeit hat der TE sicher kein Interesse mehr an einer Lösung, zumal dein Posting nichts beiträgt sondern nur neue Probleme aufwirft.

    Geschlossen. ~fufu