Einsteigerfragen zur PROFAN Programmierung
  Suchen
 Zurück zur Übersicht
 AutorThema: MP3
Dieter Münz
Datum:19.05.02 20:53 Antwortenals Email verschicken  


Hi,
Meine Frage wurde zwar schon des öfteren gestellt, aber hab sie nie gelesen....
Also: Wie kann ich das Format .mp3 laden und abspielen lassen? Kapier es nicht.
Mfg, Dieter


John Schroeter
Datum:20.05.02 13:59 Antwortenals Email verschicken  


Ganz einfach. Du spielst eine MP3 per MCI-Schnittstelle (siehe Profan-Handbuch) ab, wie eine WAV-Datei. Nur musst du einen anderen Datei/Medien-Typ angeben. Anstatt 'waveaudio' wird einfach 'MPEGVideo' eingegeben:

@MCISend$("open gong.mp3 type MPEGVideo alias gong")
@MCISend$("play gong") 'Datei spielen
...
@MCISend$("close gong") '... schließen

Ich hoffe, ich konnte dir weiterhelfen.
Gruß,

John Schroeter


Dieter Münz
Datum:20.05.02 21:53 Antwortenals Email verschicken  


Danke! Hat mir sehr geholfen!
Jetzt habe ich aber noch ne frage... ist es möglich mit profan die Lautstärke der Boxen zu regeln?? (Wie Windows Media-Player?) Dafür seh ich wirklich keine lösung!

Mfg Dieter!


Horst Horn
Datum:21.05.02 13:27 Antwortenals Email verschicken (info@web-treffpunkt.de) 


Hallo Dieter
Ein Quelltext von Thomas Hölzer - vieklleicht kannst Du ja etwas damit machen
CU horst

' PRFellow-Vorlage
' Autor: Thomas Hölzer
' Ein Lautstärkeregler in purem Profan²
' (C) 1999 Thomas Hölzer, Siegen
' Alle Rechte vorbehalten

' Benötigt:
' Profan 6.1 (32) wg. Addr-Funktion
' Soundkarte mit installierten AUX-Treibern
' In Zukunft noch:
' Differenzierung nach linkem/rechten Kanal
' s. Proc CheckLRSupport und mmedia.hlp

' *** Powered by PRFellow 2000 ***
$P+
SetErrorLevel 0

Def auxSetVolume(2) !"WINMM","auxSetVolume"
Def auxGetVolume(2) !"WINMM","auxGetVolume"
Def auxGetNumDevs(0) !"WINMM","auxGetNumDevs"
Def auxGetDevCaps(3) !"WINMM","auxGetDevCapsA"
Def GetSysColor(1) !"USER32","GetSysColor"
Def CreateStatusBar(4) !"COMCTL32","CreateStatusWindowA"
Def MakeLong(2)Or(&(1),Mul(&(2),$10000))
Def LoWord(1) And(&(1),$FFFF)
Def HiWord(1) Div&(&(1),$10000)
Declare auxcaps#
Declare ende%
Declare hChoice&
Declare hExitbtn&
Declare hGroupBox1&
Declare htrack&,hstatusbar1&

Proc PanicRunTime
SetErrorLevel -1
Declare pv%
Let pv%=Val(Translate$(Mid$($profver,1,3),".",""))
IfNot And(Or(Gt(InStr("32",$profver),0),Gt(InStr("NT",$profver),0)),Gt(pv%,60))
MessageBox("Dieses Programm benötigt Profan² 6.1-32 Bit","Höhere Version erforderlich",16)
End
EndIf
SetErrorLevel 0
EndProc

Proc PanicAuxDevices
If Lt(auxGetNumDevs(),1)
MessageBox("Die erforderlichen Sound-Treiber können nicht angesprochen werden.","Fehler",16)
End
EndIf
EndProc

Proc CheckVolumeSupport
Parameters deviceid&
Declare result&
Let result&=1
Dim auxcaps#,48
auxGetDevCaps(deviceid&,auxcaps#,48)
Case Lt(Long(auxcaps#,44),1): Let result&=0
Dispose auxcaps#
Return result&
EndProc

Proc CheckLRSupport
Parameters deviceid&
Declare result&
Let result&=1
Dim auxcaps#,48
auxGetDevCaps(deviceid&,auxcaps#,48)
Case Lt(Long(auxcaps#,44),3): Let result&=0
Dispose auxcaps#
Return result&
EndProc

Proc OnShow
Declare i%,num&
SendMessage(htrack&,1030,0,MakeLong(0,100))
Let num&=auxGetNumDevs()
Dim auxcaps#,48
WhileNot Gt(i%,Sub(num&,1))
auxGetDevCaps(i%,auxcaps#,48)
AddChoice(hchoice&,String$(auxcaps#,8))
Inc i%
Wend
Dispose auxcaps#
SendMessage(hchoice&,334,0,0)
EndProc

Proc htrackClick
Declare idx&,l&,vol&
Let idx&=SendMessage(hchoice&,327,0,0)
Let l&=SendMessage(htrack&,1024,0,0)
'Let x&=Mul(Div&($FFFF,100),x&)
Let l&=Mul(655,l&)
auxSetVolume(idx&,MakeLong(l&,l&))
EndProc

Proc OnIdle
Declare idx&,vol&,lvol&,rvol&,t$
Let idx&=SendMessage(hchoice&,327,0,0)
CheckVolumeSupport idx&
EnableWindow htrack&,&(0)
If Equ(&(0),0)
Let vol&=0
Let t$ ="Nicht unterstützt "
Else
EnableWindow htrack&,1
auxGetVolume(idx&,Addr(vol&))
Let lvol&=LoWord(vol&)
Let rvol&=HiWord(vol&)
'Let vol&=Div&(vol&,Div&($FFFF,100))
Let lvol&=Div&(lvol&,655)
Let rvol&=Div&(rvol&,655)
If Gt(rvol&,lvol&)
Let vol&=rvol&
Else
Let vol&=lvol&
EndIf
Let t$=Str$(vol&);"% "
EndIf
SendMessage(htrack&,1029,1,vol&)
SetText hGroupbox1&,Add$(" Lautstärke: ",t$)
EndProc

Proc HexitbtnClick
Let ende%=1
EndProc

PanicRunTime
PanicAuxDevices
SetTrueColor 1
WindowStyle $23A
WindowTitle "VolumeControl"
Window Add(%maxX,50),121 - 234,170
UseIcon ""
Cls GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
Let hchoice&=Control("COMBOBOX","",$54010243,20,24,192,600,%hwnd,2000,%hinstance)
Let hExitbtn&=CreateButton(%hwnd,"&Fertig",155,88,60,23)
Let hGroupBox1&=CreateGroupBox(%hwnd,"",2,2,224,120)
Let htrack&=Control("msctls_trackbar32","",$50010011,20,52,192,25,%hwnd,2001,%hinstance)
Let hStatusBar1&=CreateStatusBar($50800020,0,%hwnd,2002)
SetText hStatusBar1&, " Powered by PRFellow 2000"
DrawLibIcon FindFirst$(Add$($WinPath,"\SNDVOL32.EXE")),0,25,83
Case %IORESULT: DrawIcon "WINDOWS",25,85
SetWindowPos %hwnd = 293,121 - 234,170;-1

OnShow

WhileNot ende%
OnIdle
WaitInput
If Equ(%key,2)
Let ende%=1
ElseIf Equ(%key,4)
Case GetFocus(hexitbtn&): SetFocus(hchoice&)
ElseIf GetFocus(hExitbtn&)
hExitbtnClick
ElseIf GetFocus(htrack&)
htrackClick
EndIf
Wend
End


John Schroeter
Datum:23.05.02 20:44 Antwortenals Email verschicken  


Das geht aber noch einfacher. Wenn 'gong' wie im Beispiel oben der Alias ist, wird die MP3 recht laut abgespielt, der Wert kann also auch nach unten korrigiert werden:

print @mcisend$("setaudio gong volume to 1000")
print @mcisend$("setaudio gong volume to 100")
print @mcisend$("setaudio gong volume to 0")
...

Mit freundlichen Grüßen,

John Schroeter



Dieter Münz
Datum: 27.05.02 19:48 Antwortenals Email verschicken  


Sau geil, danke!!!
Kann mir auch noch wer sagen, wie ich so nen regler wie der Mediaplayer von microsoft hinkrieg? (Also so nen balden, mit dem ich die Lautstärke regle?)
Wäre super!
MFG Dieter!!!


 Zurück zur Übersicht
 

 Ein kostenloses WebMart Forum
WebMart Homepage Tools kostenlos
doteu.info: Don´t miss your .eu-Domain