Seite 1 von 1
Vom Mic in den Buffer und noch viel weiter...
Verfasst: 23.11.2006 13:54
von R4z0r1989
Hallo Leute hab mich im FMOD festgebissen komm aber nicht weiter da die Hilfe auch noch nur auf english zu erhalten ist!
Und zwar würd ich bitte mir einen Codeschnipsel zu basteln wie man direkt vom Mic was in den Buffer bekommt.
Was aber für mich das wichtigste wär das man es ein wenig kommentatiert.
Das wird sicher noch andren helfen!
Thx im Voraus!
Verfasst: 23.11.2006 16:48
von bobobo
guggemalhier
http://www.purearea.net/pb/CodeArchiv/German.html
.. da gibt's auch ' paar FMOD-Beispiele
Verfasst: 23.11.2006 18:43
von R4z0r1989
jo danke ich hab schonmal gefunden wie man in den buffer schreiben und abspielen kann aber jetzt bräucht ich noch was womit ich vom mic was in den Buffer bekomm!
Ich bitte um weitere Hilfe!
Thx im voraus
Verfasst: 23.11.2006 19:34
von bobobo
dannguggemalhier
http://www.fmod.org/files/fmodapi374purebasic.zip
rennt mit 3.94 .. für 4 muss Du es etwas anpassen.
Verfasst: 23.11.2006 20:07
von R4z0r1989
vielen dank aber jetzt hab ich ein weiteres Problem und zwar komm da dauernd:
Constant already declared with a different value: #FMOD_ERR_CHANNEL_ALLOC
Verfasst: 23.11.2006 20:22
von bobobo
logisch .. die Deklarationen sind in der FMOD-Lib auch schon drin..
Die (nebst Res-Datei) musst Du halt mal rauswerfen.
Verfasst: 23.11.2006 23:56
von R4z0r1989
so hab jetzt geschaft von mic in den buffer und vom Buffer in den Lautsprecher!
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Enumeration
#Button1
#Button2
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 130, 70, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Mic Buffer")
If CreateGadgetList(WindowID())
ButtonGadget(#Button1, 10, 10, 110, 20, "Aufnehmen")
ButtonGadget(#Button2, 10, 40, 110, 20, "Abspielen")
EndIf
EndIf
EndProcedure
#RECORDRATE = 44100
#RECORDLEN = (#RECORDRATE*5) ; 5 seconds at 44khz
#RECORD_DELAY_MS = 25
#RECORD_DELAY_SAMPLES = (#RECORDRATE * #RECORD_DELAY_MS / 1000)
#ENABLEREVERB = #True
#VUSPEED = 0.2
#REVERB_NUMTAPS = 7
FSOUND_SetOutput(#FSOUND_OUTPUT_DSOUND)
FSOUND_SetDriver(0)
FSOUND_SetMixer(#FSOUND_MIXER_QUALITY_AUTODETECT)
FSOUND_Init(44100, 64, #FSOUND_INIT_ACCURATEVULEVELS)
FSOUND_Record_SetDriver(0)
samp1 = FSOUND_Sample_Alloc(#FSOUND_UNMANAGED, #RECORDLEN, #FSOUND_STEREO | #FSOUND_16BITS , #RECORDRATE, 255, 128, 255)
Open_Window_0()
Repeat
Event = WindowEvent()
If Event = #PB_EventCloseWindow
Quit = 1
ElseIf Event = #PB_Event_Gadget Or Event = #PB_Event_Menu
Select EventGadgetID()
Case #Button1
FSOUND_Record_StartSample(samp1, #False)
timer = ElapsedMilliseconds()
Debug "Start Aufnahme"
Case #Button2
channel = FSOUND_PlaySound(#FSOUND_FREE, samp1)
timer2 = ElapsedMilliseconds()
Debug "Start Abspielen"
EndSelect
EndIf
If FSOUND_Record_GetPosition() >= #RECORDLEN And timer
time = ElapsedMilliseconds() - timer
FSOUND_Record_Stop()
Debug "Stop Aufnahme"
timer = 0
EndIf
If ElapsedMilliseconds() - timer2 >= time And timer2
FSOUND_StopSound(channel)
Debug "Stop Abspielen"
timer2 = 0
EndIf
Until Quit
FSOUND_Close()
vl suchen sowas auch schon einige!
Naja aber jetzt meine Frage wie kann ich rausfinden wie viele Byte eine Sekunde hat. Wie man das über das Netzwerk senden kann is ja nich schwer aber ich muss wissen wie viel Byte eine Sekunde hat bzw wie viel ne halbe!
Wer helfen will kann helfen wer verbesserungen hat zu dem code den ich geschrieben hab soll er tun!
[EDIT]
Weiß vl noch einer wie man rausfinden kann welche Lautstärke die aufnahme grad hat?
[EDIT END]
thx im Voraus!
Verfasst: 27.11.2006 17:56
von Brügge
hi
ich habe ein spiel geschrieben und möchte das mic auch gerne abhören. allerdings habe ich nicht den geringsten schimmer was da oben steht...
also ich brauche erst ne lib oder? wenn ja welche und wie setze ich sie ein. und noch wichtiger wo bekomme ich sie her?
aja und noch was, wenn ich vom mic in den buffer speicher wie groß muss der dann sein? (ich denke ein Sound ist sehr groß man muss ja die lautstärke und die wellen aufnehmen). und wenn man die über inet weiter verschickt dann sind da doch bestimmt unterbrechungen oder?
oder kann ich direckt von mic aus nicht in den buffer sondern direkt übers netzwerk.
sollte ich es so weit geschafft haben. wie kann ich den dann abspielen oder speichern?
thx im voraus