Tak więc pracuję nad tym projektem HTML5, w którym konwertuję aplikację na iOS na wersję internetową. Towarzyszącą częścią tworzenia treści aplikacji jest nagrywanie dźwięku, które próbuję replikować w JavaScript bez użycia wtyczek; do tej pory udało mi się nagrać audio z getUserMedia() i przekształcić je w WAV dzięki Recorder.js.Koduj dźwięk z getUserMedia() na .OGG w JavaScript
Teraz jednak jestem trochę zagubiony. Obecnie mam dwa oddzielne widoki, jeden do nagrywania zawartości i jeden do odtwarzania, ale nie wiem jak uzyskać dźwięk wyeksportowany z Recorder.js do mojego ładunku JSON do odtwarzania (chciałbym uniknąć zmuszania serwera wgrać lub pobrać klienta).
Więc domyślam się, że moje konkretne pytanie brzmi: jak wziąć obiekt BLOB (coś o czym prawie nic nie wiem) zrobiony przez Recorder.js i przekształcić go w surowe dane, lub w jakiś sposób wysłać plik przez JSON?
UPDATE: Zdecydowałem się spróbować użyć narzędzia speex.js (https://github.com/jpemartins/speex.js) zakodować .ogg (znacznie mniejszy niż WAV). Jednak nie jestem pewien, jak z niego korzystać; strona demo nie działała dla mnie, a próba wywołania funkcji .encode()
obiektu Speex nie zakodowała danych, a ja otrzymują tylko zera w polach obiektu. Czy ktokolwiek wie o jakichkolwiek zasobach, w których mogę nauczyć się korzystać z tego typu narzędzi?
Obecnie próbuję również ustawić coś z getUsetMedia i wypróbowałem kilka samouczków, ale wciąż czasami jest to dość trudne. Co rozumiesz przez ładunek JSON do odtwarzania? Czy masz tag '
A jeśli chcesz przekonwertować obiekt typu blob na tekst, możesz rzucić okiem na [FileReader] (https://developer.mozilla.org/en-US/docs/Web/API/FileReader?redirectlocale=en-US&redirectslug = DOM% 2FFileReader # readAsText% 28% 29) obiektu. Metody tego przyjmują argument Blob jako "argument" i "przekonwertuj" go na tekst, który myślę. Ale nie jestem pewien, jak go użyć dokładnie, czy nawet robi to, co myślę, że robi. Nie miałem jeszcze okazji przyjrzeć mu się bliżej. – basilikum
Dzięki, właśnie patrzyłem na FileReadera. Co rozumiałem przez "dane nieprzetworzone" były rzeczywistymi danymi zawartymi w pliku .WAV wyeksportowanym przez rejestrator; ponieważ ostatecznie powinno być możliwe przesyłanie między iPadem a przeglądarką, bardzo dobrym rozwiązaniem byłoby wysłanie pliku .WAV. Problem polega na tym, że nie wiem, jak wysłać rzeczywiste dane pliku .WAV, ponieważ po prostu mam obiekt typu blob z typem i długością, bez widocznych danych. – twchapman