CatchMP3() geht das(MP3 aus speicher abspielen)

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
blbltheworm
Beiträge: 217
Registriert: 22.09.2004 19:36
Wohnort: Auf der schönen Schwäbischen Alb

CatchMP3() geht das(MP3 aus speicher abspielen)

Beitrag von blbltheworm »

Hallo zusammen,
es gibt doch den Befehl CatchSound(), der jedoch lediglich *.wav abspielt.
Gibt es auch eine Möglichkeit eine *.mp3 direkt aus dem Speicher abzuspielen und dann auch in ihr hin und her zu springen??
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

MCI kann das unter windoofs.

Das besondere dabei : Du musst kurze Dateinamen verwenden.

ff kann alle möglichen Dateien abspielen .. Kompilieren und per DragundDrop bedienen.

Code: Alles auswählen

; Author bobobo
; Date : neulich abends
; Wer das klaut ist faul.

Global Pfad$,Tmp$,Datei$,Wuff$,tt$,Kinda$

Enumeration
  #Sound
  
EndEnumeration


Procedure jodeln()
  Repeat
    SoundFrequency(#Sound, Random(8000)+8000)
    PlaySound(#Sound,0)
    Delay(1000)
  ForEver
EndProcedure


Procedure.s mes(e)
  puff$=Space(1024)
  mciGetErrorString_(e,@puff$,1024)
  ProcedureReturn(puff$)
EndProcedure

Procedure PlayIt()
  If Kinda$="Fehler"
    Wuff$="Lassen sie eine MedienDatei (.wav,.au,.mp3,..) auf das Programmicon fallen"+Chr(10)
    Wuff$+"Wenn das Format geeignet ist, dann wird es abgespielt."+Chr(10)
    Wuff$+"Ansonsten sehen Sie diese Fehlermeldung."
    MessageRequester(Kinda$,Wuff$,0)
    End
  EndIf
  
  SetWindowTitle(0,Datei$)
  mciSendString_("open "+Kinda$+"!"+Wuff$+" ALIAS aua",@buffer$,1024,0)
  mciSendString_("play aua wait",@buffer$,1024,0)
  mciSendString_("close aua",@buffer$,1024,0)
  End
EndProcedure

If OpenWindow(0, 0, 0, 40, 40, #PB_Window_ScreenCentered, "MCI-WavePlayer-DD")
  CreateGadgetList(WindowID(0))
  TextGadget(0,0,0,WindowWidth(),WindowHeight(),"Any Key")
  ;ImageGadget(0,0,0,WindowWidth(),WindowHeight(),"")
  Tmp$=ProgramParameter()
  Datei$=RemoveString(GetFilePart(Tmp$),"."+GetExtensionPart(Tmp$))
  Select LCase(GetExtensionPart(Tmp$))
  Case "wav"
    Kinda$="WaveAudio"
  ;Case "avi"
  ;  Kinda$="avivideo"
  Case "cda"
    Kinda$="CDAudio"
  Case "mid"
    Kinda$="Sequencer"
  Case "rmi"
    Kinda$="Sequencer"
  Case "aif"
    Kinda$="MPEGVideo"
  Case "aifc"
    Kinda$="MPEGVideo"
  Case "aiff"
    Kinda$="MPEGVideo"
  ;Case "asf"
  ;  Kinda$="MPEGVideo"
  ;Case "asx"
  ;  Kinda$="MPEGVideo"
  Case "au"
    Kinda$="MPEGVideo"
  ;Case "m1v"
  ;  Kinda$="MPEGVideo"
  Case "m3u"
    Kinda$="MPEGVideo"
  ;Case "mp2"
  ;  Kinda$="MPEGVideo"
  ;Case "mp2v"
  ;  Kinda$="MPEGVideo"
  Case "mp3"
    Kinda$="MPEGVideo"
  ;Case "mpa"
  ;  Kinda$="MPEGVideo"
  ;Case "mpe"
  ;  Kinda$="MPEGVideo"
  ;Case "mpeg"
  ;  Kinda$="MPEGVideo"
  ;Case "mpg"
  ;  Kinda$="MPEGVideo"
  ;Case "mpv2"
  ;  Kinda$="MPEGVideo"
  Case "snd"
    Kinda$="MPEGVideo"
  ;Case "wax"
  ;  Kinda$="MPEGVideo"
  ;Case "wm"
  ;  Kinda$="MPEGVideo"
  Case "wma"
    Kinda$="MPEGVideo"
  ;Case "wmv"
  ;  Kinda$="MPEGVideo"
  ;Case "wmx"
  ;  Kinda$="MPEGVideo"
  ;Case "wvx"
  ;  Kinda$="MPEGVideo"
;  Case "wpl"
;    Kinda$="MPEGVideo"
  Default
    Kinda$="Fehler"
  EndSelect
  
  Tmps$=Space(512)
  GetShortPathName_(Tmp$,@Tmps$,512)
  Wuff$=Tmps$
  If Kinda$="Fehler"
    If InitSound()
      CatchSound(#Sound,?jodel)
      jodl=CreateThread(@jodeln(),0)
    EndIf
  EndIf
  
  pp=CreateThread(@PlayIt(),0)
  Repeat
    Select  WaitWindowEvent()
    Case #PB_EventCloseWindow
      Quit=1
      
    Case #WM_KEYDOWN
      Quit=1
    EndSelect
    
  Until Quit=1
  KillThread(pp)
  KillThread(jodl)
EndIf
End
DataSection
jodel:
IncludeBinary "jodel.wav"
jodele:
EndDataSection
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten