x86_64版Mandriva Linux 2009.0上におけるx86_64版Flash使用時のPulseAudioへのオーディオ出力について
- libflashsupportによりx86_32版のプラグインは標準対応
- x86_64版では動作しない?
- x86_64向けのlibflashsupportをビルドして解決
- .specファイルの修正について
libflashsupportによりx86_32版のプラグインは標準対応
Flash 9からはlibflashsupportというパッケージを導入することにより、PulseAudioデーモンが動いているときに自動的にPulseAudioへFlashのオーディオを出力するようになっている。Webブラウザの動作中にPulseAudioデーモンを開始したときには音がすぐには出ないことがあるが、ブラウザの再起動後には音が出るようになる。x86_64版では動作しない?
x86_32版のプラグインでは「libflashsupport」というi586のパッケージがあるのでこれを使えばPulseAudioから音声を出力することができるのだが、x86_64版のFlashプラグインを使用した場合は出力されない。x86_64向けのlibflashsupportをビルドして解決
この問題については、x86_64版のlibflashsupportをビルドとしてインストールすることで解決することができた。Mandriva Linux 2009.0の時点ではx86_64向けのlibflashsupportはパッケージに用意されていないため、作業の流れとしては
- libflashsupportのソースRPMをインストール
- 展開されたファイルの内、.specファイル(libflashsupport.specを一部編集・修正点は後述)
- x86_64上でrpmbuildを使用してパッケージをビルド
- i586版libflashsupportがあれば削除
- ビルドしたRPMパッケージをシステムにインストール
となる。
将来的には、x86_64版Flashが正式リリースとなることで、libflashsupportのx86_64版パッケージも出てくるのではないかと思われる。
.specファイルの修正について
(Mandriva Linux 2009.0に入っている)バージョン0-20070927.2mdv2009.0の時点では$ alias rpmbuild-spec2rpm='rpmbuild -bb --clean' $ LC_MESSAGES=C rpmbuild-spec2rpm SPECS/libflashsupport.spec error: Architecture is not included: x86_64
となり、x86_64向けにはビルドできない。これは
ExclusiveArch: i586
という行によりi586以外のアーキテクチャを弾いているのが原因で
ExclusiveArch: i586 x86_64
とすることでx86_64上でも正常にビルドができ、x86_64向けのRPMパッケージが作成される。
作成したRPMパッケージと修正したソースRPMパッケージは別館の配布ページに公開した。
(2015/1/8)配布ページは削除済み。
使用したバージョン:
- Mozilla Firefox 3.0.5
- Adobe Flash 10.0.21.1
- libflashsupport 0-20070927.2mdv2009.0
- PulseAudio 0.9.10