8

Web ページの Flash Player で Google Text-To-Speech URL を再生したいと考えています。

http://www.alsacreations.fr/dewplayer.htmlを使用していますが、動作しません:

<object type="application/x-shockwave-flash" data="dewplayer.swf" width="200" 
        height="20" id="dewplayer" name="dewplayer">
<param name="wmode" value="transparent" />
<param name="movie" value="dewplayer.swf" />
<param name="flashvars" value="mp3=http://translate.google.com/translate_tts?q=hello-word&tl=en" />
</object>
4

2 に答える 2

4

MP3 ファイルの URL は URL エンコードされている必要があります (http://www.w3schools.com/tags/ref_urlencode.asp)

<object type="application/x-shockwave-flash" data="dewplayer.swf" width="200" height="20" id="dewplayer" name="dewplayer">
<param name="wmode" value="transparent" />
<param name="movie" value="dewplayer.swf" />
<param name="flashvars" value="mp3=http%3A%2F%2Ftranslate.google.com%2Ftranslate_tts%3Fq%3Dhello-world%26tl%3Den" />
</object>
于 2012-04-25T12:23:13.393 に答える
4

私は集中的な調査を行い、いくつかの解決策を見つけました。Mathieu の結論 (Google が引数を変更し、独自のアプリを作成する必要がある) は間違っています。問題は、Google がクロスドメイン アクセスをチェックすることです。この場合のように、驚くべきことに、Adobe Flash Player の crossdomain.xml経由で規制されていません。Flash Player は、サーバーのルート ディレクトリからそのファイルをロードしようとしません (Firebug でテスト済み)。

問題は、Google がリファラーをチェックしていることです。それが設定されている場合、コンテンツの読み込みを拒否します。以下を確認してください。

したがって、問題はインライン コンテンツのリファラー スプーフィングに要約されます。

解決策 1 - リファラーキラー

簡単なトリックを使用できます。<img src="">タグ内の mp3 ファイルを参照し、リファラー スプーフィングを追加して、私の例を参照してください。その後、Flash Player はそれをダウンロードする必要はありません。これは、既にキャッシュに入っているためです。インライン コンテンツからリファラーを削除するソリューションがあります(画像の RefererKiller 実装を参照)。ただし、コメントは、ブラウザー間の互換性が問題になる可能性があることを示唆しています。

解決策 2 - https

したがって、最も簡単な解決策はhttpsプロトコルを使用することです。キャッシュをクリアし、https を追加して上記のリンクを試してくださいリファラーはインライン コンテンツには設定されません。しかし、信頼できる証明書を持っていない場合、証明書の信頼を確認するためにユーザーが 4 回クリックするというひどいプロセスを経る必要はおそらくないでしょう。その場合、おそらく別の解決策に進みたいと思うでしょう。

于 2013-06-09T12:48:17.680 に答える