この問題を抱えているLinuxユーザーのために、私は回避策として次のスクリプトを作成しました:
先に進む前に、Pepper-flashがChrome/Chromium用にインストールされていることを確認する必要があります(Firefox用のflashplugin)を確認する唯一の方法は、(以下の回避策を使用せずに)インターネット上のフラッシュファイルを再生することです。(または Firefox の場合、about:plugins で “Shockwave Flash” があるかどうかを確認してください)
#!/bin/bash
if [-z $1]; then
swf=$(ls *.swf | tail -1)
else
swf=$@
fi
html=$(echo $swf | sed 's:swf:html:g')
echo '<embed src='$swf 'width="100%" height="100%"></embed>' | sed 's:src=:src=":g' | sed 's:swf:swf":g' > "$html"
#chromium "$html" && sleep 20 && rm "$html"
#google-chrome "$html" && sleep 20 && rm "$html"
#firefox about:config & wmctrl -xa firefox && sleep 0.2 && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"
(ダッシュとの代替互換性があります)
スクリプトを使用するには、swftohtml.sh (任意の名前で構いません。.sh で終わる必要はありません) として任意の場所に保存し、実行可能なコマンドに変換するには、bashrc でエイリアスを作成するか、/usr/bin/にコピーしてください。引数なしで実行された場合、スクリプトは現在のフォルダにある swf ファイルを探して、対応する html ファイルを作成し、ブラウザで実行できるようにします。フォルダ内に複数の swf ファイルがある場合は、最後のものがデフォルトとなります (例: filename1.0.swf と filename2.0.swf がある場合は、filename2.0.swf がデフォルトとなります)
特定の swf ファイルをターゲットにするために、スクリプトの引数としてファイル名 (またはファイルへの完全なパス) を入力することができ、代わりにそれを使用します。(例: swftohtml.sh filename 1.0.swf )
スクリプトを完全に自動化したい場合:
swfファイルをブラウザで自動的に開き、使用後のhtmlファイルの削除を自動化するには、(ブラウザによって異なりますが)スクリプトの下部にある以下の行のいずれかをアンコメントします:
#chromium "$html" && sleep 20 && rm "$html"
#google-chrome "$html" && sleep 20 && rm "$html"
#firefox about:config & wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"
スクリプトは、htmlファイルが作成されるとすぐにブラウザでhtmlファイルを開くようになります。実行中のブラウザの既存のインスタンスがある場合は、20秒でhtmlファイルを削除します(ブラウザにそれのフラッシュプラグインでファイルを開くように指示するための十分な時間を与えます)。ブラウザのインスタンスが存在しない場合は、ブラウザが閉じられてから 20 秒後にファイルが削除されます。
このセットを使うと、スクリプトで開く SWF ファイルを設定することができます。(htmlファイルが削除されないケースがいくつかあるかもしれないことに注意してください。)
For Firefox Users:
Firefox版は少し厄介で、wmctrlとxdotoolがインストールされている必要があります。その理由は、firefox がこの方法でローカル swf ファイルを再生するためには about:config で plugins.http_https_only を無効にする必要があるからです。コマンドを実行する前にブラウザを開いておく必要があります。コマンドを実行するときに firefox ブラウザが閉じている可能性が高いと思う場合は、この行をこの行に置き換えてください:
firefox about:config & sleep 1 && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"
それは今、スクリプトの残りの部分を実行する前にブラウザを起動するために 1 秒を与えるでしょう。(遅いコンピュータのために調整する必要があるかもしれません).
スクリプトのFirefoxバージョンは常に20秒後にファイルを削除します.
パフォーマンステスト:
私はいくつかの初歩的なパフォーマンステストを行い、これらは私の結果です:
- Chrome/Chromium Pepper Flash (PPAPI). 最速
- Adobe Flash Projector (NPAPI)(Wine). 最速
- Firefox Flashplugin (NPAPI):最速。遅い
安定性については、PPAPIがNPAPIにはないバグ/エラーに遭遇するコーナーケースがありますが、まれです。
Pepper FlashとFlash Projectorの間のパフォーマンスは、Firefox Flashプラグインのパフォーマンスが何らかの理由で他のものよりも顕著に遅かったのに対し、むしろ小さい(それは顕著ですが、かろうじて)でした。他のタスクのためにそれが問題になることはほとんどありません。