| |
|
|
|
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Sound: MP3 abspielen
Mp3 per MCI Dieter Zornow
Declare MP3error&
Proc MP3_Open
Parameters MP3File$
If @NEq$(MP3File$,)
@MCISend$(OPEN +@Chr$(34)+MP3File$+@Chr$(34)+ TYPE MPEGVIDEO ALIAS MP3_play)
@MCISend$(set MP3_play time format ms)
@MCISend$(set MP3_play video off)
EndIf
EndProc
Proc MP3_Stop
@MCISend$(STOP MP3_play)
@MCISend$(CLOSE MP3_play)
EndProc
Proc MP3_Close
@MCISend$(CLOSE MP3_play)
EndProc
proc MP3_Error
if %mcierror
declare tz$,mess$
let tz$=Device Error
let mess$=Sorry, The Player can´t play this File
@messagebox(mess$,tz$,48)
MP3_Stop
MP3_Close
let MP3error&=1
return MP3error&
endif
let MP3error&=0
return MP3error&
endproc
Proc MP3_bitspersample wirkt nicht immer
Declare MP3_Result&
Let MP3_Result&=@MCISend$(STATUS WAVE BITSPERSAMPLE) samplerrate
Return MP3_Result&
Endproc
Proc MP3_Play
@MCISend$(PLAY MP3_play)
EndProc
Proc MP3_PlayLoop funktioniert nicht überall
@MCISend$(PLAY MP3_play LOOP)
EndProc
Proc MP3_PlayWait
@MCISend$(PLAY MP3_play WAIT)
EndProc
Proc MP3_SeekToEnd
@MCISend$(SEEK MP3_play TO END) Sucht Vorwärts bis zum Ende
EndProc
Proc MP3_SeekToStart
@MCISend$(SEEK MP3_play TO START) Sucht Rückwärts bis zum Anfang
EndProc
Proc MP3_SeekTO
Parameters pos$ in ms
@MCISend$(SEEK MP3_play TO +pos$) Sucht bis zur Position
EndProc
Proc MP3_Pause
@MCISend$(PAUSE MP3_play)
EndProc
Proc MP3_Resume
@MCISend$(RESUME MP3_play) Spielt nach Pause weiter an der gleichen Stelle, play spielt auch weiter, manchmal auch Doppel pause
EndProc
Proc MP3_PlayMode
Declare MP3_Result$
Let MP3_Result$=@MCISend$(STATUS MP3_play MODE)zeigt den Zustand (stopped, playing, paused, not ready)
Return MP3_Result$
EndProc
Proc MP3_Break Waitplay abbrechen mit ESC Taste
@MCISend$(Break MP3_play on 27)
endproc
Proc MP3_length LengthMP3 weiter unten benutzen für Umrechnung
Declare MP3_Result$
Let MP3_Result$=@MCISend$(STATUS MP3_play LENGTH) Länge der mp3
Return MP3_Result$
Endproc
Proc MP3_position posMp3 weiter unten benutzen für Umrechnung
Declare MP3_Result$
Let MP3_Result$=@MCISend$(STATUS MP3_play POSITION) aktuelle Position
Return MP3_Result$
Endproc
Proc LengthMP3 rechnet in Minuten Sekunden der String 00:00
declare lang&,sek%,wert$,lang$,temp$
MP3_length
Let lang&=@Val(@&(0))
let sek%=@div&(lang&,1000)
let lang&=@div&(sek%,60)
let temp$=add$(str$(lang&),:)
If @equ(@len(temp$),2)
let wert$=@add$(0,temp$)
else
let wert$=temp$
endif
let sek%=@sub(sek%,@mul(lang&,60))
If @lt(sek%,10)
let wert$=@add$(wert$,0)
let wert$=@add$(wert$,@str$(sek%))
else
let wert$=@add$(wert$,@str$(sek%))
endif
Return wert$
EndProc
Proc PosMP3 rechnet in Minuten Sekunden der String 00:00
declare lang&,sek%,wert$,lang$,temp$
let wert$=00:00
MP3_position
let lang&=@Val(@&(0))
let sek%=@div&(lang&,1000)
let lang&=@div&(sek%,60)
let temp$=add$(str$(lang&),:)
If @equ(@len(temp$),2)
let wert$=@add$(0,temp$)
else
let wert$=temp$
endif
let sek%=@sub(sek%,@mul(lang&,60))
If @lt(sek%,10)
let wert$=@add$(wert$,0)
let wert$=@add$(wert$,@str$(sek%))
else
let wert$=@add$(wert$,@str$(sek%))
endif
Return wert$
Endproc
beispiel
cls
MP3_open C:CDPlayTest_VBR.mp3
MP3_open MP3_02.MP3
MP3_bitspersample
print @&(0)
LengthMP3
print @$(0)
MP3_Play
Print klick für Pause
waitinput
MP3_Pause
Print klick für weiter und Positon
waitinput
MP3_Resume geht auch mit play
MP3_SeekToEnd
PosMP3 In schleife abfragen
print @$(0)
waitinput
MP3_Stop
MP3_Close
|
|
|
| |
|
|