php desibel ölçer

merhaba arkadaşlar ben kendi web sşteme deibel ölçer yapmak istiyorum ben php yeni başlamış sayılırım 3 hafta olmuştur bu konu hakında çok bilgim yok googl da bi şey bulamadım eğer bilen varsa ne olur yazısın

  • Etiketler;

Merhaba. PHP sunucu makinesi üzerinde çalıştığı için kullanıcı cihazındaki mikrofon veya kamera gibi aygıtlara ağ üzerinden ve doğrudan erişmesi mümkün değildir. Bunun yerine yeni nesil tarayıcılarda JavaScript sayesinde kullanıcı mikrofonundan veya kamerasından veri alabilirsiniz.

Bu konu ile ilgili örnek bir video hazırladım.

Proje kodu:

<div style="height: 30px; overflow: hidden">
	<div id="progressBar" style="width: 0%; height: 100%; background-color: #22f"></div>
</div>
<script>
var progressBar = document.getElementById("progressBar");

navigator.mediaDevices.getUserMedia({ audio: true, video: false })
.then(stream => {
	var context = new AudioContext();
	var source = context.createMediaStreamSource(stream);
	var processor = context.createScriptProcessor(1024, 1, 1);
	
	source.connect(processor);
	processor.connect(context.destination);
	
	processor.onaudioprocess = function(e) {
		var channelData = e.inputBuffer.getChannelData(0);
		
		var avg = 0;
		
		channelData.forEach(f => { avg += Math.abs(f); });
		
		avg = (avg / 1024) * 1000;
		
		progressBar.style.width = avg + "%";
	};
});
</script>

Burada gelen değerlerin ortalamasını alıp, progress bar ile gösterebilmek için 1000 ile çarpıyoruz.

Ayrıca bkz.

https://developers.google.com/web/fundamentals/media/recording-audio/#access_the_raw_data_from_the_microphone

https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createScriptProcessor

https://www.youtube.com/watch?v=vlS4CVojEe0

bu konuda bana yardım ediğiniz için teşekür ederim

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git