Plugin de gravação de voz

Um plugin simples de gravação de voz que permite enviar mensagens de áudio gravadas diretamente no navegador do seu computador ou dispositivo móvel.

Confira o fórum da comunidade english.best para vê-lo em ação. O código está hospedado no Github.

A biblioteca utiliza uma versão levemente modificada da biblioteca Microm, que conta com RecordRTC e lamejs.

Após a instalação padrão, ative composer_audio_upload_enabled nas configurações.

Ao redigir uma nova mensagem, basta clicar no ícone de microfone para iniciar a gravação. Ao terminar, sua gravação será convertida para MP3 para garantir maior compatibilidade entre navegadores.

Atualmente, a recodificação é feita usando o lamejs, o que não é ideal e pode levar algum tempo para mensagens de voz mais longas ou em dispositivos mais lentos.

Se, por algum motivo, não funcionar no seu dispositivo, ficarei grato se você puder informar o dispositivo, o navegador e a versão do sistema. Os testes não foram extremamente extensos, mas já temos alguns usuários utilizando. Conto com seus comentários e/ou pull requests :slight_smile:

58 curtidas

Thank you very much :smiley:

1 curtida

Cool! We regularly get asked for the ability to add a voice message or even a video recording directly to posts. I’ll try this out and let you know how it works out!

Some feedback:

  • mp3, the file type of the uploaded audio recording, is by default not allowed as an upload type. suggest adding a note to the install instructions to enable mp3 uploads.
  • an obvious admin setting to add would be to allow limiting the length of audio recording that can be uploaded. right now it seems that the recording can go on indefinitely though I have not tried it. A max of say 30 seconds or 2 minutes would be suitable for some communities. The utility of an audio recording diminishes the longer it gets, so some default max eg 5 minutes would be sensible.
  • an admin setting to limit by trust level would be helpful
  • a progress indicator during the recording would be helpful, to indicate long the recording is getting, as well as an audio level indicator to show that the audio recording is actually working.
  • the file size of the saved recording is displayed in kilobytes, not megabytes, so eg a 3 minute recording is 2000+. It would be nice to see it in mb.
  • as you indicated, it takes a while to save even a three minute recording, so a progress indicator of the saving process would be helpful.

Is there any scope or ability to add video recording to this plugin? It would be very welcome in my community.

7 curtidas

And a quick follow-up after spending a bit of time with this plugin. While looking at

I looked around here but was not able to immediately find posts containing voice recordings (turns out it’s buried in this topic). Some icon (maybe microphone?) indicating topics containing voice recordings might be a good idea, as well as the ability to filter by posts containing voice recordings in the search. Even searching mp3 did not take me straight to posts containing recordings. E.g. a filter to only return topics/posts that “include mp3 recordings”:

Also, just for giggles I recorded a 20 minute recording, then tried to upload it - but the upload failed because it was larger than the maximum size allowed. The recording was then lost, which in this case was no big deal.. it was only a recording of me taking a nap, after all. :zzz: But if I had actually spent 20 minutes recording myself saying something important I would have been pretty sad to lose it! So ideally the plugin would stop the recording before the limit is reached, or at least provide a fallback method to save the recording to my device so I can upload it elsewhere and share the link as suggested by the error message.

Update: not sure this is a surprise but this plugin does not work on mobile, using chrome on ios. The record button just doesnt do anything.

Another update: occurs to me the record button could live in the composer options submenu. That would be better in my opinion.

5 curtidas

Many thanks for all your feedback, we’ll try to implement some of your suggestions in the next update.

1 curtida

Awesome! I remain very interested in this plugin. Let me know when you need more testing or feedback. :rocket:

1 curtida

Would it possible to allow the recording to be saved somewhere else and then link to that in the plugin.

Example. Say the member had a soundcloud.com account and the recording was sent to soundcloud as a private or public recording.

7 curtidas

Intressting project, I really like it.

How about background recording in cases, to allow parallel note taking? This would be my killer feature :wink: Do you know the iOS App Notability? This is currently my way to combine notes with recordings. It’s awesome, because Notability is able to highlight all changes made while the voice is keep talking… I guess this might be too much here? :winking_face_with_tongue:

2 curtidas

I’d also like to support Keith’s idea of saving the recording elsewhere with one addition. Instead of each member needing a soundcloud.com account, I’d like to be able to create an admin soundcloud account so that all recordings are saved to that account. Will simplify things immensely.

5 curtidas

Update to this idea: I wonder if there’s a workflow that allows us to SpeakPipe instead! It’s a free voice recorder that generates a URL that can be added to your post. It also doesn’t require people to create an account. At minimum, people could click on the microphone icon and text pops up with a link to and directions on how to use SpeakPipe.

@csmu and @pawel, this may be another topic all together. Should I split this topic?

2 curtidas

Is it free? If so then I think having it as an option would be excellent.

Could the recording be stored on Amazon S3?

1 curtida

The recorder feature is free for any individual to use. They have a more robust product that does cost money, take a look for yourself!

There doesn’t seem to be a workflow that makes it happen automatically, though the person who makes the recording can download it and store the file somewhere else.

3 curtidas

Speakpipe does not seem to be “free as in freedom” like we get with discourse. My preference would be to avoid third party hosting of content, including these voice recordings.

You can set up your site to host all attachments on amazon s3 is that not a reasonable solution for those who may want to host longer recordings that take up more space?

3 curtidas

Fico muito feliz por ter encontrado este plugin, mas ainda estou hesitante em instalá-lo até que seja possível o armazenamento de gravações por terceiros. Idealmente, haveria opções de conectividade para vinculá-lo ao Google Drive, Dropbox, Vocaroo ou algum outro site de terceiros, além do auto-hospedagem, mas o armazenamento por terceiros seria especialmente benéfico para comunidades hospedadas que não dispõem de muito espaço de armazenamento. Aguardo ansiosamente futuras atualizações deste aplicativo e agradeço ao Pawel por criá-lo!

2 curtidas

Olá, Jimmy! Bem-vindo. Fico feliz que você também esteja interessado neste plugin. Há um pouco de discussão sobre hospedagem de terceiros acima, mas, honestamente, discordo de que seja uma prioridade alta ou até mesmo relevante para este plugin em particular.

Talvez, se muitas pessoas quiserem, você possa desenvolver um plugin diferente para integrar o Speakpipe ou algum outro site de compartilhamento de áudio baseado em nuvem?

Para este plugin, acho que a prioridade deve ser adicionar uma configuração de administrador para limitar a duração das gravações. Assim, o tamanho do arquivo não será excessivamente pesado para armazenar ou reproduzir, e o site não ficará cheio de gravações longas e divagantes que ninguém ouve. :wink:

Enquanto isso, já existe a possibilidade de hospedar anexos externamente (isso já está embutido no Discourse — veja a configuração de administrador enable s3 uploads). Mas, de fato, não é adequado para streaming de conteúdo.

2 curtidas

Tenho curiosidade, por que não?

1 curtida

Já vi discussões aqui sobre limitações relacionadas ao streaming de vídeos, etc., hospedados no Discourse, mas não estou encontrando imediatamente. :wink: Talvez alguém possa fornecer uma resposta enquanto eu procuro um pouco mais.

Minha própria intuição é que arquivos menores não são um problema, mas quando se trata de horas de filmes, é melhor mover seu conteúdo para um serviço de streaming em nuvem, como Vimeo ou YouTube, e depois fornecer uma visualização incorporada (onebox) dentro das postagens do Discourse para que as pessoas possam assistir sem sair do fórum.

1 curtida

O plugin não é para gravação de voz?

Um áudio MP3 mono deve ficar geralmente abaixo de 10 MB (10 minutos de áudio mono a 44,1 kHz/16 bits/96 kbps são 7,2 MB), então será algo como um GIF grande e certamente pode ser usado em conjunto com Armazenamento de Objetos (S3) mais uma CDN.

6 curtidas

Ah, estamos falando da mesma coisa. Peço desculpas pela confusão.

As pessoas estão chegando e defendindo o hospedagem de terceiros de gravações de áudio, e eu estou dizendo que não, não precisamos nos preocupar com isso exatamente pela razão que você deu. Armazenar e reproduzir um arquivo pequeno não é problema.

No entanto, atualmente este plugin permite que as pessoas iniciem uma gravação e a deixem rodar indefinidamente, o que falha ao salvar se elas falaram por muito tempo e tentarem salvar um arquivo maior do que o permitido pelo servidor.

4 curtidas

Como Tobias mencionou aqui, este plugin apresenta vários problemas importantes (principalmente questões relacionadas a dispositivos móveis e a falta de um temporizador ou feedback durante o salvamento da gravação).

Adoraria ver uma abordagem alternativa nativa. Para mim, a opção mais simples para permitir que meus usuários gravem e compartilhem áudio é usar um serviço como o Clyp. Ele oferece 360 minutos no plano gratuito e fornece um link direto que você pode colar no Discourse (graças à mágica do OneBox).

https://clyp.it/ry03mt3o

A única desvantagem é que ele não grava no iPad (você só pode fazer o upload do arquivo de áudio).

Outras opções para gravação online, caso sejam úteis para algumas pessoas:

  • Poodll - Desvantagem: os arquivos são armazenados apenas por 30 dias.
  • VirtualSpeech: Gravador de Voz Online - Desvantagem: não funciona no iPad. No Android, ele gera arquivos .oga, que não são reproduzidos automaticamente no Discourse (embora os arquivos .ogg funcionem. Isso pode ser um bug).
2 curtidas