typescript - 2019'da javascript kullanarak ses oynatımında zaman uzatma işlemi nasıl yapılır?


Ses perdesini değiştirmeden (sözde "zaman-germe") ses oynatmayı yavaşlatmak/hızlandırmak için güncel bir çözüm arıyorum. İşleme mümkün olduğunca hızlı olmalı (ses konuşma kaydıdır). Web Workers kullanmak da iyi olur.

Web Audio API kullanıyorum. Yerel HTML5, uygulamam için bir seçenek değil.

Zaman uzatma için bazı çözümler buldum, ancak bunların bir kısmı oldukça eski ve artık bakım görmüyor ya da kullanılacak örnekler yok. Bulduğum çözümlerin listesi buradan. StackOverflow'daki bu gönderi eski ve muhtemelen şu anda en iyi çözüm değil.

Typescript'te iyi uygulanmış, stabil ve kullanılabilir bir çözüm var mı?

Cevap #1

Herhangi bir üçüncü taraf kütüphane kullanmadan en kolay yol, HTML5 Audio ve onun Audio sınıfını kullanmaktır. Bu, tınıyı koruyarak oynatma hızını değiştirmeyi sağlar.

Daha Fazla Bilgi:

https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/playbackRate

const player = new Audio();
player.src = "someURL";
player.playbackRate = 1.5;
player.play();

Benim durumumda HTML ses seçeneği neden mevcut?

Yanılmışım, HTML audio kullanmak benim için bir seçenek. Daha önce, HTML Audio yalnızca saniye cinsinden oynatma konumları sunduğu için kullanamayacağımı düşünmüştüm. Şimdi ses dosyasından ikili verileri okuyorum ve süreyi örnekler cinsinden alıyorum. Uygulamamda örnek konumunu otomatik olarak saniyeye çeviriyorum. Bu sorun değil ve şimdi HTML Audio kullanabiliyorum.