Problem z WebAudio

0

Tworzę na własne potrzeby pewną aplikację HTML5/JavaScript nagrywającą dźwięk z mikrofonu na bazie tej:
https://webaudiodemos.appspot.com/AudioRecorder/index.html

Zgrałem oryginalną aplikację, w plikach HTML i JS jedynie pozmieniałem ścieżki do plików, żeby aplikacja uruchamiała się bez internetu.
Przetestowałem w Firefox z pliku oraz z serwera na Raspberry Pi i działa bez problemu, tylko trzeba potwierdzać dostęp do mikrofonu. Na Raspberry Pi jest uruchomiony serwer HTTP za pomocą programu nginx i wszystkie testy (oryginalny adres, plik lokalny i adres na RPi) były na tym samym komputerze. Czyli na Firefox nie ma żadnego problemu bez względu na miejsce, z którego uruchomiłem.

Z Chrome już jest problem:
Test z oryginalnego adresu: Działa poprawnie
Test z pliku na dysku: Można potwierdzić dostęp do mikrofonu, ale już nie działa (nie wiem, czy czegoś nie dograłem, bo w Firefox działa poprawnie, objaw jest taki, że nie wyświetla dźwięku)
Test po przeniesieniu na Raspberry Pi (obojętnie, czy po adresie zewnętrznym czy wewnętrznym) jest komunikat "error getting audio" jak przy odmowie dostępu do mikrofonu, tyle, że przeglądarka nawet nie zapytała się o dostęp. Doszedłem do ustawień, na co Chrome ma pozwalać przy tym adresie i dostęp do mikrofonu i kilku innych zasobów jest wyłączony bez możliwości włączenia.

Przetestowałem na telefonie z Androidem (podłączony po WiFi do sieci domowej):
Test z oryginalnego adresu: Działa poprawnie, tylko przy pierwszym uruchomieniu było pytanie o dostęp do mikrofonu i potwierdziłem, potem działa poprawnie
Test z Raspberry Pi: Komunikat "error getting audio", brak pytania o pozwolenie na korzystanie z mikrofonu.

W jaki sposób można zmusić do poprawnego działania tej aplikacji w przeglądarce Chrome i na telefonie z Androidem, żeby pozwolić jej na korzystanie z mikrofonu? Zakładam, że ja znam aplikację, wiem, co robi z dźwiękiem z mikrofonu i jestem pewien, że udostępnienie mikrofonu nie przyniesie żadnej szkody.

Załączam wersję, którą testowałem na Raspberry Pi w Chromie i na telefonie.

W ustawieniach Chrome na komputerze jest "Chroń siebie i swoje urządzenie przed niebezpiecznymi witrynami", domyślnie było włączone, ale wyłączenie nie rozwiązuje problemu.

0

Zainstalowałem Firefox na Androidzie, przetestowałem z RPi i na FF działa poprawnie. Tylko w Chrome na komputerze i telefonie są problemy. W takim razie temat jest aktualny.

0

Wiesz, jak coś mi nie działa, to zwykle robię taki myk, że wpisuję w Google komunikat błędu i ono zwykle mi znajduje pytania ludzi, którzy mieli wcześniej ten sam problem, a często też i gotowe rozwiązania.
W twoim przypadku:
"error getting audio" chrome
https://stackoverflow.com/questions/34237935/error-getting-audio-in-audio-record-using-recorder-js
I wychodzi, że w Chrome będzie to działać tylko po https (co mi w sumie przez myśl nawet przeszło, ale uznałam, że to by było zbyt proste) ;)

0
Freja Draco napisał(a):

Wiesz, jak coś mi nie działa, to zwykle robię taki myk, że wpisuję w Google komunikat błędu i ono zwykle mi znajduje pytania ludzi, którzy mieli wcześniej ten sam problem, a często też i gotowe rozwiązania.

Ten komunikat nie jest standardowym komunikatem, tylko wywołanie alert("error getting audio");, więc w każdym przypadku może brzmieć inaczej. Innym sposobem jest pobieżne poszukiwanie, potem napisanie pytania i dalsze poszukiwania i testy w czasie oczekiwania na odpowiedź.

W twoim przypadku:
"error getting audio" chrome
https://stackoverflow.com/questions/34237935/error-getting-audio-in-audio-record-using-recorder-js
I wychodzi, że w Chrome będzie to działać tylko po https (co mi w sumie przez myśl nawet przeszło, ale uznałam, że to by było zbyt proste) ;)

Po napisaniu postu ja też sam poszukiwałem i też gdzieś doszedłem, że w przypadku Chrome, domyślnie w HTTP nie zadziała, a w HTTPS zadziała, ale nie znalazłem informacji, jak uruchomić w przypadku HTTP. Teraz to nie wiem, czy prościej przestawić Chrome w telefonie i komputerze, czy skonfigurować NGinX na RPi do obsługi HTTPS.

1 użytkowników online, w tym zalogowanych: 0, gości: 1