Merhaba WebAudio API'sı üzerinde çalışıyorum. Java API'da olduğu gibi HTML5 Web Audio API, porting from javax.sound and getting distortion bağlantısını okudum ama iyi kalitede olmadım. İmzalı baytta sunucudan PCM verisi alıyorum. Sonra bunu 16 bit biçiminde değiştirdim. değiştirmek için kullanıyorum (< < 8 | secondbyte) kullanıyorum, ancak iyi bir ses kalitesi elde edemiyorum. iyi kalitede ses elde etmek için dönüştürme ya da başka herhangi bir şekilde herhangi bir sorun var mı?pcm verilerini webAudio API'sine göre çal
7
A
cevap
4
Web Audio API'sı, -1'den 1'e 32 bit işaretli şamandıralar kullanır, bu yüzden (umarım) bu soruda bahsettiğiniz 16 bit yerine nasıl yapacağınızı gösterir. Numunelerin dizinizi varsayarsak
samples
denir ve -128 127 ila 2'nin iltifat olarak depolanır, bu çalışması gerekir düşünüyorum:
var floats = new Float32Array(samples.length);
samples.forEach(function(sample, i) {
floats[i] = sample < 0 ? sample/0x80 : sample/0x7F;
});
Sonra böyle bir şey yapabilirsiniz:
var ac = new webkitAudioContext()
, ab = ac.createBuffer(1, floats.length, ac.sampleRate)
, bs = ac.createBufferSource();
ab.getChannelData(0).set(floats);
bs.buffer = ab;
bs.connect(ac.destination);
bs.start(0);
+0
Sanırım eksiksiniz "bs.buffer = ab;" – CpnCrunch
İlgili konular
- 1. WebAudio API örnekleme hızı
- 2. HashMap verilerini değerlere göre sırala
- 3. ALSA: paylaşılan modda bir PCM cihazı açın
- 4. Çal Framework ve Java
- 5. Bir WebAudio WaveShaper Düğümünün Eğrisinin Değiştirilmesi Oynarken
- 6. IE'de WAV dosyalarını çal
- 7. Ben çal çalıştırın ve
- 8. pcm sesi .mp4 kapsayıcı dosyasında depolanamıyor
- 9. Ses çal telefon sessiz mod
- 10. Google+ Oturum Çal Hizmetleri Android
- 11. Çal modülleri testi ve FakeApplication
- 12. Çal Çerçeve 1.4 staticDir yolları
- 13. Çal sunucusu, google-bulut bağımlılık
- 14. YouTube duraklat, çal & çalıştır çalışmıyor
- 15. Her N milisaniyede bir ses çal
- 16. Python Pandalar Grup, tarih verisi verilerini kullanarak tarihe göre
- 17. Chrome Extension webAudio API, Windows güç tasarruf modlarını durdurur
- 18. çekirdek ses: sadece PCM ses için sessizlik sıfır eşdeğerdir?
- 19. Çal 1.2.x UnexpectedException ContinuationEnhancer: 15
- 20. Anorm ayrıştırma şamandıra Çal çerçevesinde 2.0
- 21. Çal Çerçeve 2.4 Enjekte alanlar hep
- 22. Bir dize için ölçek şablon sözdizimini çal
- 23. Aynı anda ses çal ve kaydet
- 24. Çal Çerçevesi: 2.0.2 PersistenceException: Ebean sunucusunun tüm
- 25. Çal Scala: Sınıf I Scala Play'de acemiyim
- 26. Mysql verilerini
- 27. Javascript'te Json verilerini nasıl sıralayabilirim?
- 28. Çal çerçevesi java bağımlılık enjeksiyon - Ben Çal Framework 2.4 içinde bağımlılık enjeksiyon nasıl kullanılacağını çalışmak çalışıyorum singletons
- 29. Önyükleme istisna Çal yeniden başlatılırken Çal yeniden başlatıldığında bir dosya değişiklikten sonra, ben bazen bu hatayı alabilirsiniz
- 30. Çal 2 ters yönlendirme, benim rotalarda böyle bir rota var verilmiş, Çal 2.2.3 çerçevesini kullanarak kontrolör yöntemiyle
Kod parçacıkları her zaman yararlıdır. – ebidel
İmzalı bayt dizisini Float32Array'a nasıl dönüştürdüğümü söyleyebilir misiniz? – user894554
Bunu öne çıkarmaktan gurur duymakla yetinmeyiz, ancak bu durum resmi bir belgenin doğrudan işlevi olan PCM parçasını atladığından ve daha fazla 'yardımcı' olan decodeAudioData() üzerinde odaklandığından, bu iyi bir sorudur. –