Компонент диктофона

Вот так! Убедитесь, что вы используете предоставленный мной URL. :+1:

5 лайков

Вот мои результаты до и после:

(Также обратите внимание, что единственный встроенный .mp3-плеер, который не отображает длительность клипа, — это тот, что записан в Windows, как до, так и после.)

ДО:

ПОСЛЕ:

Дайте знать, если хотите, чтобы я провёл ещё какие-либо тесты!

2 лайка

У меня всё работает на iPad и iPhone, также в DiscourseHub. При воспроизведении отображается длительность клипа.

3 лайка

Спасибо за обратную связь, Jakke!

Также спасибо @denvergeeks: я исправил две проблемы, и он подтвердил, что теперь всё работает идеально.

Скоро отправлю PR. :+1:

5 лайков

Я создал PR :+1:

Возможные функции для других PR:

  • Добавить поддержку чата
  • Добавить поддержку паузы/возобновления
10 лайков

Такое великолепие

3 лайка

Вот безумная мысль — кнопка «Автоматическая расшифровка» для загруженных .mp3-файлов в редакторе? Тогда пользователь мог бы (теперь) записывать пост в редакторе, а также делать его читаемым и поисковым.

Что потребуется для интеграции возможности OpenAI/Whisper?

Или в выпадающем меню AI, которое появляется при выборе файла в редакторе…

…можно было бы добавить опцию Расшифровать текст.

8 лайков

Это была бы интересная и полезная функция! :+1:

Я проверю возможность реализации в другой раз.

8 лайков

Очень ценно за это!

3 лайка

Если это будет реализовано в чате, то автоматическая транскрипция в реальном времени также может включать перевод.

5 лайков

Я обновил этот компонент в системе.
https://github.com/paviliondev/discourse-voice-recorder

Проверил на Firefox, Safari и Chrome на Mac, а также на iPhone.
Отображается это, но запись не идет.
Может, кто-то подтвердит? Спасибо…

2 лайка

Не могли бы вы проверить консоль браузера на наличие ошибок?

В данном случае это означает, что загрузка скрипта библиотеки блокируется.

3 лайка

Я только что установил TC из репозитория paviliondev, на который была дана ссылка выше.

Всё работает в моём экземпляре Discourse. Вот видео…

(И в консоли на любом этапе создания/загрузки/игры не появляется ошибок.)

4 лайка

Это Discourse 3.2.1, размещённый на платформе Communiteq

load-script.js:43 Загрузка скрипта «https://www.mydiscoursesite.com/uploads/db9860/original/3X/c/f/cf579d0503105d41f84653929d510e17f12d9f5b.js» заблокирована, так как это нарушает следующую директиву политики безопасности контента (Content Security Policy):
“script-src
https://www.mydiscoursesite.com/logs/
https://www.mydiscoursesite.com/sidekiq/
https://www.mydiscoursesite.com/mini-profiler-resources/
https://www.mydiscoursesite.com/assets/
https://www.mydiscoursesite.com/extra-locales/
https://www.mydiscoursesite.com/highlight-js/
https://www.mydiscoursesite.com/javascripts/
https://www.mydiscoursesite.com/plugins/
https://www.mydiscoursesite.com/theme-javascripts/
https://www.mydiscoursesite.com/svg-sprite/

2 лайка

Мне удалось воспроизвести проблему.

Недавно добавленная настройка позволяет внешним скриптам выполняться динамически без ручной конфигурации.
Эта функция недоступна в версии 3.2.

image

Однозначно, разрешать каталог «/uploads» — плохая идея.
Однако в качестве обходного решения достаточно разрешить только URL-адреса.

Если перейти к настройкам компонента:

Вы можете щёлкнуть правой кнопкой мыши по каждой ссылке, чтобы скопировать её и вставить в настройку content security policy script-src.

Не знаю, есть ли лучший способ решить проблему CSP в компоненте темы. :thinking:

1 лайк

Спасибо, @Arkshine

В консоли я увидел эти два JS-файла по адресу /uploads/ и добавил их в список «content security policy script src»:

https://www.site.com/uploads/db9860/original/3X/c/f/cf579d0503105d41f84653929d510e17f12d9f5b.js
https://www.site.com/uploads/db9860/original/3X/a/2/a25eb4ec6c9652e57eefc81bc25c81105232369b.js

Разрешение браузера на запись подтверждено.
Однако при каждом запуске записи возникает ошибка с другим URL; похоже, что ID генерируется на лету?

https://www.site.com/8f955841-9b8b-4857-8549-ac57ee0e4517
https://www.site.com/d43014ac-e80d-4879-83a2-bd046d43a25c

Добавление этих URL не помогает; похоже, они генерируются для каждой записи…?

1 лайк

Можно также попробовать добавить script-src: blob: в script-src политики безопасности контента?

3 лайка

Это работает, спасибо @Arkshine!

С нетерпением ждем записи голоса в чате :slight_smile:

4 лайка

У меня этой ошибки не было, судя по всему, потому что у меня уже был записан blob: в content security policy script src, так как плагин @peter.be (plugin) требовал этого. После удаления этого плагина я не удалил blob: из content security policy script src, поэтому он уже был там, как показано ниже…

Также необходимо ли добавить mp3 в список разрешённых расширений в настройках администратора Discourse? У меня это тоже уже было настроено ранее…

3 лайка

Стоит подумать: CSP имеет тенденцию серьёзно ломать работу, и из-за этого довольно часто используются правила, которые по сути являются просто «подстановками» — и тогда CSP полностью теряет свой смысл.

Так что?

2 лайка