Mp3 API

  • VB6

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

    Hallo hilfsbereites Forum!
    Ich werde hier demnächst warscheinlich noch ein paar Fragen haben und hoffe es stört niemanden.
    Schliesslich ist ein Forum dafür da. :)

    Dieses mal geht es um diese API

    Visual Basic-Quellcode

    1. Private Declare Function mciSendString Lib "winmm.dll" _
    2. Alias "mciSendStringA" ( _
    3. ByVal lpszCommand As String, _
    4. ByVal lpszReturnString As String, _
    5. ByVal cchReturnLength As Long, _
    6. ByVal hwndCallback As Long) As Long


    mit folgenden Code spiele ich eine MP3 Datei ab:

    Visual Basic-Quellcode

    1. If mciSendString("open " & "Sfx\walk.mp3" & _
    2. " type MPEGVideo alias MyMP3", 0, 0, 0) = 0 Then
    3. mciSendString "play MyMP3 from 0", 0, 0, 0


    und mit diesem schliesse ich sie wieder:

    Visual Basic-Quellcode

    1. mciSendString "stop MyMP3", 0, 0, 0
    2. mciSendString "close MyMP3", 0, 0, 0


    aber wen das "Lied" zuende ist wie könnte ich es anstellen das es einfach wieder von vorne losgeht?
    schönen guten tag :)
    ich habe ein neues problem und wollte kein unnötiges neues thema erstellen da es hier bestens reinpasst.
    also wenn ich es so verwende wie bei meinem ersten post in diesem theard hier dan dauert das laden der .mp3 einige millisekunden und für diese zeit hält das programm
    und genau das ist das problem könnte ich es irgendwie in die application laden und es dann abspielen ohne vorher jedes mal zu laden? mit dem component mediaplayer habe ich es probiert und es gibt da auch keine möglichkeit!
    Dafür gibt es ja den Alias...
    Du kannst am Anfang alle "Songs" mit je einem anderen Alias "vorladen" und später dann abspielen.
    Der Nachteil ist, dass dadurch der Speicherbedarf ansteigt. Übrigens sollte man nach dem Abspielen den Speicher wieder freigeben, wenn man ihn nicht mehr benötigt. (mciClose)
    Ich habe mir für die mci-Geschichte ein Benutzersteuerelement erstellt. So bekommt man Multitasking ohne Unterbrechungen.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Vielen Dank für die schnelle und hilfreiche Antwort.
    Aber wie stelle ich es denn an mit den mehreren Alias?
    So zum Beispiel:

    Visual Basic-Quellcode

    1. Private Declare Function mciSendString Lib "winmm.dll" _
    2. Alias "mciSendStringA" ( _
    3. ByVal lpszCommand As String, _
    4. ByVal lpszReturnString As String, _
    5. ByVal cchReturnLength As Long, _
    6. ByVal hwndCallback As Long) As Long
    7. Private Declare Function mciSendString Lib "winmm.dll" _
    8. Alias "mciSendStringB" ( _
    9. ByVal lpszCommand As String, _
    10. ByVal lpszReturnString As String, _
    11. ByVal cchReturnLength As Long, _
    12. ByVal hwndCallback As Long) As Long
    13. Private Declare Function mciSendString Lib "winmm.dll" _
    14. Alias "mciSendStringC" ( _
    15. ByVal lpszCommand As String, _
    16. ByVal lpszReturnString As String, _
    17. ByVal cchReturnLength As Long, _
    18. ByVal hwndCallback As Long) As Long


    geht es nicht weil vb dan eine fehlermeldung ausgibt beim ausführen
  • 2 Benutzer haben hier geschrieben