{"id":19210,"date":"2026-09-24T18:26:48","date_gmt":"2026-09-24T16:26:48","guid":{"rendered":"https:\/\/www.beseit.net\/?p=19210"},"modified":"2026-09-24T18:39:37","modified_gmt":"2026-09-24T16:39:37","slug":"19210","status":"publish","type":"post","link":"https:\/\/www.beseit.net\/?p=19210","title":{"rendered":"Flux"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"1024\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/09\/imatge-1-975x1024.png\" alt=\"\" class=\"wp-image-19211\" srcset=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/09\/imatge-1-975x1024.png 975w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/09\/imatge-1-286x300.png 286w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/09\/imatge-1-768x806.png 768w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/09\/imatge-1.png 1224w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ed. I en el teu cas <strong>no cal tocar Flask ni el TTS<\/strong>: el que est\u00e0 impedint que soni autom\u00e0ticament \u00e9s molt probablement la pol\u00edtica d&#8217;autoreproducci\u00f3 del Firefox.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A la captura es veu que la p\u00e0gina ja genera correctament l&#8217;\u00e0udio i mostra el reproductor. El que falta \u00e9s que Firefox faci <code>play()<\/code> sense que tu premis el bot\u00f3.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Primer: fes que la p\u00e0gina HTML intenti reproduir-lo autom\u00e0ticament<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si ara tens alguna cosa semblant a:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;audio controls src=\"{{ audio_file }}\">&lt;\/audio><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">canvia-ho per:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;audio controls autoplay src=\"{{ audio_file }}\">&lt;\/audio><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O, millor encara:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;audio id=\"audio\" controls autoplay>\n    &lt;source src=\"{{ audio_file }}\" type=\"audio\/wav\">\n&lt;\/audio>\n\n&lt;script>\nwindow.addEventListener(\"load\", function () {\n    const audio = document.getElementById(\"audio\");\n\n    audio.play().catch(function(error) {\n        console.log(\"Autoplay bloquejat:\", error);\n    });\n});\n&lt;\/script><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aix\u00f2 far\u00e0 que <strong>la p\u00e0gina demani a Firefox que comenci a reproduir l&#8217;\u00e0udio tan aviat com es carregui<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Per\u00f2 aqu\u00ed hi ha la clau: Firefox<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Firefox bloqueja per defecte la reproducci\u00f3 autom\u00e0tica <strong>amb so<\/strong> en molts casos. Mozilla confirma que es pot permetre l&#8217;autoreproducci\u00f3 per a un lloc concret. (<a href=\"https:\/\/support.mozilla.org\/es\/kb\/permitir-o-bloquear-la-reproduccion-automatica-de-multimedia-firefox?utm_source=chatgpt.com\">Suport de Mozilla<\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per tant, jo faria primer aquesta prova:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Obre:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">http:\/\/192.168.1.49:5040\/processa<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">i mira a l&#8217;esquerra de la barra d&#8217;adreces el s\u00edmbol relacionat amb l&#8217;autoreproducci\u00f3\/permisos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9 pots anar a:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Firefox \u2192 Ajustos \u2192 Privadesa i seguretat \u2192 Permisos \u2192 Reproducci\u00f3 autom\u00e0tica \u2192 Configuraci\u00f3<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">i permetre:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Permetre \u00e0udio i v\u00eddeo<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">per al teu servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mozilla permet precisament configurar aquesta excepci\u00f3 <strong>per lloc web<\/strong>, de manera que no cal canviar el comportament de tot Internet. (<a href=\"https:\/\/support.mozilla.org\/es\/kb\/permitir-o-bloquear-la-reproduccion-automatica-de-multimedia-firefox?utm_source=chatgpt.com\">Suport de Mozilla<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. Per al teu projecte jo faria aix\u00f2<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El flux quedaria:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">index.html\n     \u2502\n     \u2502 POST\n     \u25bc\n\/processa\n     \u2502\n     \u25bc\ncrear_html_i_tts.py\n     \u2502\n     \u2502 genera WAV\n     \u25bc\np\u00e0gina Flask\n     \u2502\n     \u2502 AUTOPLAY\n     \u25bc\n\ud83d\udd0a \u00c0UDIO<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9s a dir, <strong>no necessitem cap bot\u00f3 \u00abPlay\u00bb<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I aix\u00f2 encaixa perfectament amb el que est\u00e0vem construint: el servidor genera l&#8217;\u00e0udio i el navegador simplement el reprodueix.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Una cosa important<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si vols que sigui <strong>100% autom\u00e0tic fins i tot quan Firefox obre una pestanya nova<\/strong>, hem de configurar dues coses:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>el <code>&lt;audio autoplay><\/code> \/ JavaScript de Flask;<\/li>\n\n\n\n<li>donar perm\u00eds d&#8217;autoreproducci\u00f3 a <code>192.168.1.49:5040<\/code> al Firefox.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">La segona \u00e9s la que probablement et falta ara mateix.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si vols, <strong>podem fer-ho pas a pas sobre el teu <code>index.html<\/code> actual i el Flask<\/strong>, i et preparo exactament el codi que has de substituir perqu\u00e8 quan entri a <code>\/processa<\/code> <strong>soni directament l&#8217;\u00e0udio sense tocar absolutament res<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>S\u00ed. I en el teu cas no cal tocar Flask ni el TTS: el que est\u00e0 impedint que soni autom\u00e0ticament \u00e9s molt probablement la pol\u00edtica d&#8217;autoreproducci\u00f3 del Firefox. A la captura es veu que la p\u00e0gina ja genera correctament l&#8217;\u00e0udio &hellip; <a href=\"https:\/\/www.beseit.net\/?p=19210\">Continua llegint <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":3168,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[207,1],"tags":[],"class_list":["post-19210","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deepin-linux","category-bloc-de-notes"],"_links":{"self":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/19210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19210"}],"version-history":[{"count":2,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/19210\/revisions"}],"predecessor-version":[{"id":19214,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/19210\/revisions\/19214"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/media\/3168"}],"wp:attachment":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}