Вот так! Убедитесь, что вы используете предоставленный мной URL. ![]()
Вот мои результаты до и после:
(Также обратите внимание, что единственный встроенный .mp3-плеер, который не отображает длительность клипа, — это тот, что записан в Windows, как до, так и после.)
ДО:
ПОСЛЕ:
Дайте знать, если хотите, чтобы я провёл ещё какие-либо тесты!
У меня всё работает на iPad и iPhone, также в DiscourseHub. При воспроизведении отображается длительность клипа.
Спасибо за обратную связь, Jakke!
Также спасибо @denvergeeks: я исправил две проблемы, и он подтвердил, что теперь всё работает идеально.
Скоро отправлю PR. ![]()
Я создал PR ![]()
Возможные функции для других PR:
- Добавить поддержку чата
- Добавить поддержку паузы/возобновления
Такое великолепие

Вот безумная мысль — кнопка «Автоматическая расшифровка» для загруженных .mp3-файлов в редакторе? Тогда пользователь мог бы (теперь) записывать пост в редакторе, а также делать его читаемым и поисковым.
Что потребуется для интеграции возможности OpenAI/Whisper?
Или в выпадающем меню AI, которое появляется при выборе файла в редакторе…
…можно было бы добавить опцию Расшифровать текст.
Это была бы интересная и полезная функция! ![]()
Я проверю возможность реализации в другой раз.
Очень ценно за это!
Если это будет реализовано в чате, то автоматическая транскрипция в реальном времени также может включать перевод.
Я обновил этот компонент в системе.
https://github.com/paviliondev/discourse-voice-recorder
Проверил на Firefox, Safari и Chrome на Mac, а также на iPhone.
Отображается это, но запись не идет.
Может, кто-то подтвердит? Спасибо…
Не могли бы вы проверить консоль браузера на наличие ошибок?
В данном случае это означает, что загрузка скрипта библиотеки блокируется.
Я только что установил TC из репозитория paviliondev, на который была дана ссылка выше.
Всё работает в моём экземпляре Discourse. Вот видео…
(И в консоли на любом этапе создания/загрузки/игры не появляется ошибок.)
Это 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/”
Мне удалось воспроизвести проблему.
Недавно добавленная настройка позволяет внешним скриптам выполняться динамически без ручной конфигурации.
Эта функция недоступна в версии 3.2.

Однозначно, разрешать каталог «/uploads» — плохая идея.
Однако в качестве обходного решения достаточно разрешить только URL-адреса.
Если перейти к настройкам компонента:
Вы можете щёлкнуть правой кнопкой мыши по каждой ссылке, чтобы скопировать её и вставить в настройку content security policy script-src.
Не знаю, есть ли лучший способ решить проблему CSP в компоненте темы. ![]()
Спасибо, @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 не помогает; похоже, они генерируются для каждой записи…?
Это работает, спасибо @Arkshine!
С нетерпением ждем записи голоса в чате ![]()
У меня этой ошибки не было, судя по всему, потому что у меня уже был записан blob: в content security policy script src, так как плагин @peter.be (plugin) требовал этого. После удаления этого плагина я не удалил blob: из content security policy script src, поэтому он уже был там, как показано ниже…
Также необходимо ли добавить mp3 в список разрешённых расширений в настройках администратора Discourse? У меня это тоже уже было настроено ранее…
Стоит подумать: CSP имеет тенденцию серьёзно ломать работу, и из-за этого довольно часто используются правила, которые по сути являются просто «подстановками» — и тогда CSP полностью теряет свой смысл.
Так что?











