| |
|
|
- page 1 - |
|
| Grüß euch!
chez einem kürzlichen Spieleprojekt stellte sich mir qui Frage, si on den Audioeingangspegel (bzw. qui Veränderung desselben) eines Mikrofons dans XProfan dans irgendeiner forme graphisch représenter laisser peux. je kam sur cette Gedanken, là sich somit ggf. Opportunités pour "lautstärkegesteuerte" Spielsteuerungen ergeben würden (donnais oui la fois avant vielen Monden une Pong-variante avec vergleichbarer service).
Vielen Dank déjà la fois im Vorraus
MfG, Ernst. |
|
|
| |
|
|
|
| |
|
- page 1 - |
|
| Coole Frage, wüsste je aussi volontiers comment cela allez et habe en supplément encore rien prêt.
on devrait arrêt wohl Audiodaten dans einem grenier vorliegen avons um aus den y enthaltenen données wiederum une Lautstärke trop errechnen.
Vlt. peux je ici anknüpfen: [...] |
|
|
| |
|
|
|
| Soso... [...] ... mist muss ins Bett demain tôt raus...
MSDN
The common l'ordre for calling Waveform Audio functions to record audio is:
waveInOpen waveInPrepareHeader waveInAddBuffer waveInStart waveInUnprepareHeader waveInClose
- so sollte on wohl vorgehen -
cela sollte sich wohl erarbeiten laisser. |
|
|
| |
|
|
|
| Grad aufgewacht weils simple "zu" chaleureux ist et dachte so "gugste mal"... -
juste mais wieder ab dans qui Heia...
échelle fluviale Montrer ist simple... meinste quelque chose comme?
Herunterladen externer Télécharger
|
|
|
| |
|
|
|
|
|
|
| |
|
|
|
| Vielen Dank - cela sieht doch très intéressant aus Werde mir cela Ganze maintenant la fois trop Gemüte mener. |
|
|
| |
|
|
|
| parfait - oui c'est ca c'est es! Vielen Dank! je frag simple la fois - hättest du vllt. une Codeschnipsel o.Ä. là? |
|
|
| |
|
|
|
| bien sûr sollst Du soviel Quellcode en supplément bekommen comment Du magst -
serait je seulement volontiers savons dans quel variante Du den volontiers hättest
là je en supplément durchaus volontiers quelques Lösungsansätze anbieten serait.
Richtig optimal et am einfachsten gehts si Du XProfan dans liaison avec XPSE [...] einsetzt -
là pourrait je Dir fix une variante "herbilden" sodass cela eigentliche Hauptprogramm garnichts 1faire muss et simple z.B. dans einer Variable toujours qui aktuelle Pegelwert steht.
ensuite gäbe es là encore une reine XProfan-variante qui mais pas so zuverlässig son wird et wohin Du im Programme arrêt selbst ständig den Pegelwert herausmessen musst quoi gewisse Verarbeitungszeit dans Anspruch nimmt et plan plus ou bien moins "ständig" geschehen muss là Du oui pas la valeur de vorgestern savons vouloir.
plus travail würden là faire ne DLL sowie aussi une Unit ou bien Include qui une DLL beinhalten et mais aussi ginge un Modul comme Unit welches qui Funktionen comme MemoryModule vorhalten pourrait.
ici une minimale "Quick&Dirty"-variante dans "reinem" XProfan:
'{$ Cleq}
'{$runtime c:\dev\x11}
'{$compiler c:\dev\x11}
struct waveFormatEx=wFormatTag%,nChannels%,nSamplesperSec&,nAvgBytesPerSec&,nBlockAlign%,wBitsPerSample%,cbSize%
declare waveform#
var WaveHdrIn&=0
cls
usermessages 960
dim waveform#,waveFormatEx
with waveform#
.wFormatTag%=1
.nChannels%=1
.wBitsPerSample%=8
.nAvgBytesPerSec&=16000*1*8
.nSamplesPerSec&=16000
.nBlockAlign%=1
.cbSize%=0
endwith
var hWaveIn&=external("kernel32","GlobalAlloc",64,4)
cas external("winmm","waveInOpen",hWaveIn&,-1,waveform#,%hWnd,0,65536) : end messagebox("ERROR","ERROR",4096)
hWaveIn&=long(hWaveIn&,0)
whileLoop 2
WaveHdrIn&=createWaveHdrIn()
external("winmm","waveInPrepareHeader",hWaveIn&,WaveHdrIn&,32)
external("winmm","waveInAddBuffer",hWaveIn&,WaveHdrIn&,32)
Wend
external("winmm","waveInStart",hWaveIn&)
var peek!=0
var tmp&=0
tandis que 1
waitinput
sélectionner %uMessage
caseof 960
si &uwParam=hWaveIn&
WaveHdrIn&=createWaveHdrIn()
external("winmm","waveInPrepareHeader",hWaveIn&,WaveHdrIn&,32)
external("winmm","waveInAddBuffer",hWaveIn&,WaveHdrIn&,32)
tmp&=abs(128-byte(long(&ulParam,0),0))*2
peek!=peek!*0.95
cas peek!<tmp& : peek!=tmp&
usebrush 1,$FFFFFF
rectangle 0,0 - 40,256-peek!
usebrush 1,$FF
rectangle 0,(256-peek!) - 40,256
external("kernel32","GlobalFree",long(&ulParam,0))
external("kernel32","GlobalFree",&ulParam)
endif
EndSelect
Wend
end
proc createWaveHdrIn
var waveHdrIn&=external("kernel32","GlobalAlloc",64,32)
long waveHdrIn&,0=external("kernel32","GlobalAlloc",64,64),64
return waveHdrIn&
endproc
Herunterladen externer Télécharger
PS: pourquoi écris comme Invité statt angemeldet? ( [...] ) -
so bekommst doch aucun Info si Dir einer quoi écrit. |
|
|
| |
|
|
|
| oui super - vielen Dank, fonctionne! oui alors wenn's rien ausmacht, serait je mich sur une Version avec XPSE très freuen
et oui, stimmt, eigentlich pourrait je mich aussi s'inscrire. Mach je la fois ab qui prochain Antwort. Hatte avec cela avant längerer Zeit irgendwie Probleme et suis c'est pourquoi aus Gewohnheit hautsächlich seulement encore comme Invité anwesend |
|
|
| |
|
|
|
| si irgendwie un Anmeldeproblem encore bestehen sollte ensuite peux Du cela z.B. aussi ici sous contact simple écrivons: [...]
je crois es était quelque chose irritierend le moi vom S'inscrire per Mitgliedsname trop S'inscrire per E-Mail übergegangen suis simple weil es sicherer ist weil qui Mitgliedsnamen öffentlich sommes im opposition le E-Mail-Adressen et je sichere/ echte Accounts anbeiten voudrais qui donc SSL-gesichert sommes.
So une variante avec XPSE lieu je Dir her et Poste qui ensuite ici. |
|
|
| |
|
|
|
| exposition la fois si Du avec qui miclevel.inc bien sûr viens: [...] |
|
|
| |
|
|
|
Endwhile | So, maintenant comme registrierter Nutzer alors, parfait - vielen Dank! c'est assez oui c'est ca cela, quoi je mir vorstellte. Werde mir cela la fois genauer regarder et chez Fragen ggf. encore la fois quoi écrivons. |
|
|
| |
|
|
| |
|
- page 2 - |
|
|
| |
|
| |
|
|