Visual Basic 2008 Directx Problem

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von MediaXtremely.

    Guten Abend ihr Lieben.

    Ich habe ein riesen Problem. Ich bin ein Programm am schreiben wo man mit der Tastatur Sounds abspielt.
    Ich habe es geschafft mit Directx mehrere Sounds abzuspielen. So weit so gut.
    Jetzt das Problem.

    Wenn ich mehrere Sounds abspiele, steigt die Prozessorleistung wenn ich aufhöre bleibt die Prozessorleistung so wie sie ist obwohl ich nix mache. Am Anfang bei Null beim Spielen steigt die Prozessorleistung, höre ich auf und mache nicht bleibt die Prozessorleistung so.

    Woran kann das liegen, dass die Leistung nicht mehr auf Null zurück geht?
    Hat einer eine Idee???

    Bitte??

    MfG Thorsten


    Edit by LaMa5:
    -->*moved* (Tipps&Tricks => Multimedia)

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

    dürfte eigentlich nicht paassieren .... kannst du mal einen kleinen teil deine codes senden vielleicht liegt darin das problem ansonsten kann ich mir nichts vorstellen, weil der computer ja nur den prozessor beansprucht wenn er arbeit hat

    VB.NET-Quellcode

    1. Imports Microsoft.DirectX.AudioVideoPlayback
    2. Imports Microsoft.DirectX
    3. Public Class Form1
    4. Private WithEvents AudioDatei1 As Audio
    5. Private WithEvents AudioDatei2 As Audio
    6. Private WithEvents AudioDatei3 As Audio
    7. Private WithEvents AudioDatei4 As Audio
    8. Private WithEvents AudioDatei5 As Audio
    9. Private WithEvents AudioDatei6 As Audio
    10. Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    11. If e.KeyCode = Keys.Space Then
    12. Try
    13. PictureBox1.Image = My.Resources.boden2
    14. AudioDatei1.Play()
    15. Catch ex As Exception
    16. MsgBox("Überlastung. Alles hat seine Grenzen. Klicke auf ok um neu zu starten.")
    17. Me.Close()
    18. Application.Restart()
    19. End Try
    20. End If
    21. If e.KeyCode = Keys.G Then
    22. Try
    23. PictureBox2.Image = My.Resources.drum2
    24. AudioDatei2.Play()
    25. Catch ex As Exception
    26. MsgBox("Überlastung. Alles hat seine Grenzen. Klicke auf ok um neu zu starten.")
    27. Application.Restart()
    28. End Try
    29. End If
    30. If e.KeyCode = Keys.K Then
    31. Try
    32. PictureBox3.Image = My.Resources.drum2
    33. AudioDatei3.Play()
    34. Catch ex As Exception
    35. MsgBox("Überlastung. Alles hat seine Grenzen. Klicke auf ok um neu zu starten.")
    36. Application.Restart()
    37. End Try
    38. End If
    39. If e.KeyCode = Keys.F Then
    40. Try
    41. PictureBox5.Image = My.Resources.becken2
    42. AudioDatei4.Play()
    43. Catch ex As Exception
    44. MsgBox("Überlastung. Alles hat seine Grenzen. Klicke auf ok um neu zu starten.")
    45. Application.Restart()
    46. End Try
    47. End If
    48. If e.KeyCode = Keys.L Then
    49. Try
    50. PictureBox4.Image = My.Resources.beckengr2
    51. AudioDatei5.Play()
    52. System.Windows.Forms.Application.DoEvents()
    53. Catch ex As Exception
    54. MsgBox("Überlastung. Alles hat seine Grenzen. Klicke auf ok um neu zu starten.")
    55. Application.Restart()
    56. End Try
    57. End If
    58. If e.KeyCode = Keys.N Then
    59. Try
    60. PictureBox6.Image = My.Resources.hihat
    61. PictureBox5.Image = My.Resources.becken2
    62. AudioDatei6.Play()
    63. System.Windows.Forms.Application.DoEvents()
    64. Catch ex As Exception
    65. MsgBox("Überlastung. Alles hat seine Grenzen. Klicke auf ok um neu zu starten.")
    66. Application.Restart()
    67. End Try
    68. End If
    69. End Sub
    70. Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
    71. If e.KeyCode = Keys.Space Then
    72. PictureBox1.Image = My.Resources.boden
    73. AudioDatei1 = New Audio("bussdrum.wav")
    74. End If
    75. If e.KeyCode = Keys.G Then
    76. PictureBox2.Image = My.Resources.drum1
    77. AudioDatei2 = New Audio("snare.wav")
    78. End If
    79. If e.KeyCode = Keys.K Then
    80. PictureBox3.Image = My.Resources.drum1
    81. AudioDatei3 = New Audio("tom.wav")
    82. End If
    83. If e.KeyCode = Keys.F Then
    84. PictureBox5.Image = My.Resources.becken
    85. AudioDatei4 = New Audio("links.wav")
    86. End If
    87. If e.KeyCode = Keys.L Then
    88. PictureBox4.Image = My.Resources.beckengr
    89. AudioDatei5 = New Audio("rechts.wav")
    90. End If
    91. If e.KeyCode = Keys.N Then
    92. PictureBox6.Image = My.Resources.hihat2
    93. PictureBox5.Image = My.Resources.becken
    94. AudioDatei6 = New Audio("hihat fuss.wav")
    95. End If
    96. End Sub


    Danke für die Antwort.
    Das dachte ich auch, aber irgendwas schein er noch zu machen.

    Edit by ~blaze~:
    *vb-Tag eingefügt*

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

    Wie stelle ich das an??
    Im Formload lädt er die wav Dateien hoch und ich kann sie nur einmal abspielen. Also ich drücke einen Button der ton wird abgespielt, beim zweiten mal kein ton.

    Deswegen werden die wav Dateien jedes mal geladen.

    Ich weiß nicht weiter... ;(

    Danke für die Antwort... 8-)
    da wo du wieder von vorne Spielen lassen willst...
    Und die frage wie ist mir nicht ganz Klar, wenn du die oben verwendeten Begriffe nicht kennst, dann solltest du zumindest Google oder ein Buch bemühen...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Ich habe es geschafft, Jipi...
    Es funktioniert super...

    Danke, danke, danke für die Antworten....Ihr seit die besten.

    Also beim Abspielen die CurrentPosition = 0 setzen!

    Form load

    VB.NET-Quellcode

    1. Audiodatei = New Audio (Pfad zur einer wav datei)
    2. Button1.click
    3. Audiodatei.Play ()
    4. Audiodatei1.Currentposition = 0


    Geil, nochmals danke...

    Edit by ~blaze~:
    *vb-Tag eingefügt*

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „~blaze~“ ()