Visual Studio 2019/ axWindowsMediaplayer

11/09/2019 17:10 ProDielerNR(1)#1
Hey alle zusammen
ich steh vor einem Rätzel
ich hab mir gedacht ich nutze den axWindowsMediaplayer dazu um
verschiedene sound Dateien abzuspielen .mp3
Jedoch musste ich schon zu Anfang feststellen da stimmt etwas nicht

Ich hab den code in meiner form geschrieben das er zu begin an die Datei bitte
Abspielen soll, das hat auch funktioniert mein problem liegt aber bei etwas anderem, etwas was für mich unverständliches.
Ich nutze das keypress event um eine Picbox bewegen zu können
nur sobald ich dies mache (gedrückt gehalten) ruckelt das einmal ganz kurz
und dann beendet sich aus heiterem himmel die sound datei jedesmal einfach so und ich verstehe das einfach nicht es gibt gar keine Verbindung zum
Keypress event und dem axMediaplayer, hat noch jemand dieses problem und weiß wie man das evt lösen kann ?

AxMediaPlayer code
Code:
Imports System.IO
Imports WMPLib

Dim Player As WindowsMediaPlayer = New WindowsMediaPlayer
 Dim Player As WindowsMediaPlayer = New WindowsMediaPlayer
                                Player = New WMPLib.WindowsMediaPlayer
                                Player.URL = "DeathM2.mp3"
Code 1 (Keydown)

Code:
            Select Case e.KeyCode         
                Case Keys.Left
                    SP = 1
                    Left1.Start()
                    Dean.BackgroundImage = pm2
                    Exit Select
                Case Keys.Right
                    SP = 2
                    Right1.Start()
                    Dean.BackgroundImage = pm1
                    Exit Select
                Case Keys.Escape
                    End
                    Exit Select
            End Select
Code 2 (Keyup)
Code:
        Select Case e.KeyCode
            Case Keys.Left
                Left1.Stop()
                Exit Select
            Case Keys.Right

                Right1.Stop()
                Exit Select
        End Select

Timer code
Code:
    Private Sub Left_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Left1.Tick
        If SP = 1 Then
            If Dean.Location = New Point(0, Dean.Location.Y) Then
                Dean.Location = New Point(0, Dean.Location.Y)
            Else
                Dean.Left = Dean.Left - 5
            End If
        End If
    End Sub
die sp = 1,2,3 bla
sind Interger btw

Falls ihr eine Lösung habt oder wisst woran es liegen könnte würde ich mich um eine Antwort freuen :)
:handsdown:
LG ProdielerNR(1)

Ah ich glaube ich habe eine Vermutung woran es liegen könnte, falls das mein problem lösen sollte melde ich mich noch einmal :)
11/09/2019 23:29 warfley#2
Zu deinem Problem keine ahnung, dazu kenne ich die WMP komponente nicht gut genug, wenn die aber irgendwie auf dem mainthread arbeitet (datei lesen/parsen, gui komponenten aktualisieren, etc.), und du den die ganze zeit belegst mit deinem Movement, kanns eventuell daran liegen (so wie du das problem beschreibst würd ich mal darauf setzen)

Aber, so wie ich das sehe willst du ein kleines Spiel bauen. Lass dir gesagt sein, mit dem Ansatz den du da fährst (also Pictureboxen, mehrere Timer, Mediaplayer) wirst du sehr schnell sehr unglücklich werden. Sobald du ein paar picture boxen auf dem Feld hast du mehrere Sounds gleichzeitig abspielen willst, oder genug Timer gleichzeitig laufen wirst du richtig beschissene Performance bekommen. Das liegt nicht mal daran das du alles über die CPU laufen lässt (wobei das natürlich auch nicht so schnell ist), sondern vor allem weil, man glaubt es kaum, Windows Forms (Sowie die WMPLIB) nicht für Spiele ausgelegt ist.

Ich würde dir empfehlen, wenn du erstmal von OpenGL oder so fern bleiben willst, zu erst mal alles über GDI zu zeichnen, und alle berechnungen sowie das Zeichnen in einem einzigen Timer oder dem Application.Idle loop zu machen.
Persönlich bin ich für kleine 2D spiele auch ein riesen Fan von SDL. SDL kann dir einen 2D Framebuffer bereitstellen, texturen Effizient laden, Sounds abspielen, Inputs lesen (Tastatur, Maus, Controller) und vieles mehr.
Gibt garantiert nen SDL .Net layer, und ich würde mal behaupten das es effektiv damit sogar einfacher ist als das was du dir grade zusammen hackst
11/10/2019 00:04 ProDielerNR(1)#3
Wie schon beschrieben liegt es nicht am key's event :)

Ich denke auch die lösung gefunden zuhaben bin mir aber noch nicht ganz sicher,
kann es bisher noch nicht testen :D

Häftige leggs hab ich bisher btw nicht erkannt, leuft alles flüssig es wird ja auch alles
despose :)

Ich arbeite mit Bitmap codes sprich ich lasse die rein geladenen Dateien bereits zeichnen :)

und das die form (Anwendung) nicht dafür gemacht ist und der Player ist mir bewusst, für meine zwecke reicht das jedoch :)

sind keine großen 2D Spiele mehr in der richtung mini games und da werde ich auch erstmal bleiben einfach weil die zeit dazu fehlt und es auch nur ein hobby ist :3

Falls du aber noch smarte tricks haben solltes, also was jetzt nicht hochkomplíziert zu verstehen sind, währe ich sehr dankbahr dafür :)

Und ja OpenGL und direx halte ich mich erstmal fern ich bin noch dabei auf einfachen wegen die termatiken hinter einer Programmierungen zu verstehen Sprich (wie muss was gemacht werden um dies,das zu erhalten) try and error mässig :D

Ist zwar von vielen nicht gern gesehen das ist mir schon klar ich bezeichne mich auch nicht als voll profie den das bin ich auch nicht :'D
Ich bin bloß neugierig wie weit ich kommen kann und villt sogar werde und probiere viele verschiedene dinge aus ^^

ich taste mich quasi von ganz klein nah ganz groß heran :D

Meine erste schritte worauf ich sehr stolz bin ist das ich mitlaweile ganz ohne form disgne auskomme (Modele auf die form schieben fertig mässig)

sondern das ich mittlerweile wirklich es geschafft haben für mich alles peer code schreiben zu können :D

ihr müsst wissen ich habs nicht studiert oder sonstiges ich lerne von anderen und bin für jede hilfe dankbahr die leicht zu verstehen ist, jedoch taste ich mich immer noch gerne selbständig heran ich will meine eigene schritte machen können damit ich später auf eigene füße sozusagen stehen kann und nicht immer auf andere angewiesen bin :3

wahr jetzt viel text und viel hat das jetzt mit meinem fehler nicht zu tun gehabt aber ich wollte das einfach mal los werden xD
'
Btw ja ich weiß ich habe eine rechtschreibschwäche sry ^^"

Und ja ich mag auch 2D Games :'D

versuche auch schon bald den nächsten schritt zuwagen mehr mit X-Y-Z Koordinaten zu arbeiten x3
Das wird spannend für mich :D