カテゴリー別アーカイブ: システム開発

IE9 HTML5のvideoタグで動画が再生できない


IEの強制アップロードが3月中旬に行われているので

そろそろ完全にHTML5に対応してもいいのでは?ないのだろうかっとふと思う時があります。

社内の意見が分かれるので、クライアント様の要望にもよりますが、今年いっぱいはまだ控えておこう。(吾輩は小心者です)

HTML5への移行、それとは別にHTML上の動画をFlashから各ブラウザーがHTML5で対応している

形式を自分なりに試してみました。(遅い…)

Flash愛好家の自分としては、HTML5に移行してもFlashで行こうと考えておりましたが

やはり時代には勝てません。

スマートフォンの対応を考えると動画フォーマットをmp4にして対応していかなければ!そんな思いです。

そこで、今回いろいろと自分テストしてみたのですが

Firefox、IE9で動画が再生できない?いろいろな事を体験しました。最終的にはGoogle chrome、safariを含め、全てのブラウザーで動画を再生できるようになりました。

ではざっくりと

最終的には下記のコードで

<video controls width=”1280″ height=”720″>
<source src=”test.ogg” type=”video/ogg” /><!– Mozilla –>
<source src=”test.mp4″ type=”video/mp4″ /><!– Webkit –>
<p>動画を再生するにはvideoタグをサポートしたブラウザーでアクセスしてください。最新バージョンのブラウザーをおすすめします。</p>
</video>

が、何故か?IE9では、ローカル環境では再生できているのに

ネットワークサーバー上では、再生できない不具合が発生してしまいます!

もちろんHTML5の宣言もしており



原因が不明。未対応のテキストも表示されず、バツ印しか表示されません。

サーバー管理者に相談すると

mime指定がされていないからではと!

そこで

.htaccessに

AddType video/ogg ogg
AddType video/mp4 mp4

を追加して、各動画の拡張子にサーバー側で対応するようにしました。

結果はビンゴ!?

正常にHTML5の動画をIE9でも再生することができました。

気持ちIEの方が再生時の負荷は小さい?

が、まだ当分はflv動画メインですがね~



PHP5.4.0 imagick.so imagemagick コンパイルエラー


PECL Package 最新版

PECL Package 最新版


PHPでimagemagickを扱う際は、peclのimagickを利用しているのですが

どうやらPHP5.4.0では、最新のimagick(3.1.0RC1)でないとコンパイル時にエラーになってしまいます。

3.1.0RC1
– Fixed PECL Bug #22722
– Fixed possible memory leaks in error scenarios
– Added PHP 5.4 support


# pecl install imagick

では、エラーになってしまうので、別途最新版をダウンロード指定して導入します。

http://pecl.php.net/package/imagick

何かと最新版を利用すると、ところどころに不具合が見るかりますね。

apache2.4.1 + php5.4.0

一通り不具合が解消され現在は安定動作をし続けています。

apache2.4.1は大幅に機能が追加されているので、今から勉強必須です。



PHP5.4コンパイルエラー configure WARNING enable-zend-multibyte



PHP5.4は5.3に比べて4倍速いと言うベンチマーク結果をもとに早速導入を決定

前回までのコンパイルオプションをそのまま利用するとエラーになってしまいます。

configure: WARNING: unrecognized options: –enable-zend-multibyte

どうやら5.4からのマルチバイト(日本語対応)はphp.iniの設定項目で行うようになったみたいです。

PHP5.4.0のリリースと変更点・注意点そして速度


PHPがこの春!メジャーバージョンアップして5.4.0としてリリースされました。

幾つか機能の追加、変更、削除があります。

そのままバージョンアップしても問題なく動作すると記載されていますが、変更点を確認してみると

気になる箇所もちらほら見受けられます。

速度的には5.3と比べると約4倍高速になっているみたいです。これは期待できますね。

後、時代なんでしょうか?CLIの独自WEBサーバー機能があります。

なんか脱apacheぽい動きが業界にあるのかもしれない・・・


[下位互換性のない変更点]
セーフモード をサポートしなくなりました。セーフモードでの動作を前提とするアプリケーションは、 セキュリティに関する調整が必要となります。
マジッククォート が削除されました。 この機能に依存するアプリケーションは、依存しないように修正しないとセキュリティの問題が発生します。 get_magic_quotes_gpc() と get_magic_quotes_runtime() は常に FALSE を返すようになりました。set_magic_quotes_runtime() を実行すると E_CORE_ERROR が発生します。
ini 設定 register_globals と register_long_arrays が削除されました。
呼び出し時の参照渡しをサポートしなくなりました。
break と continue への引数として、変数は使えなくなりました。つまり、 break 1 + foo() * $bar; などとは書けなくなったということです。 静的な引数を使うのはもちろん可能で、break 2; などは使えます。
Date 拡張モジュールにおいて、TZ 環境変数によるタイムゾーンの設定をサポートしなくなりました。 php.ini 設定 date.timezone あるいは date_default_timezone_set() 関数でタイムゾーンを指定しなければなりません。 デフォルトのタイムゾーンが設定されていない場合に推測することがなくなり、 未設定の場合は常に “UTC” とみなして E_WARNING を発生させるようになりました。
$a が文字列の場合に非数値のオフセット (たとえば $a[‘foo’]) を指定したときに、isset() の返り値は false、 そして empty() の返り値は true となりました。 そして同時に E_WARNING が発生します。オフセットに double や bool そして null を指定した場合は E_NOTICE が発生します。数値とみなせる文字列を渡した場合 ($a[‘2’] など) の挙動はこれまでと変わりません。 ‘12.3’ や ‘5 foobar’ のようなオフセットは非数値とみなされて E_WARNING が発生しますが、過去との互換性のためにそれぞれ 12 および 5 に変換されることに注意しましょう。
配列を文字列に変換しようとすると E_NOTICE が発生するようになりました。 キャストの結果は “Array” で、以前と変わりません。
NULL、FALSE あるいは空文字列にプロパティを追加してオブジェクトに変換しようとすると、 これまでのような E_STRICT エラーではなく warning が発生するようになりました。
スーパーグローバルをパラメータ名として使うと fatal error となります。つまり function foo($_GET, $_POST) {} などのコードは使えなくなります。
ハッシュアルゴリズム Salsa10 および Salsa20 が削除されました。
array_combine() のパラメータとして空の配列を二つ指定したときの返り値が FALSE ではなく array() となりました。
htmlentities() は、アジアの文字に対して使ったときに E_STRICT を発行するようになりました。この場合の htmlentities() の挙動が htmlspecialchars() (こちらは以前からそうなっていた) と同じになりました

[新機能]
トレイトのサポートが追加されました。
配列の短縮構文が追加されました。$a = [1, 2, 3, 4]; や $a = [‘one’ => 1, ‘two’ => 2, ‘three’ => 3, ‘four’ => 4]; のように使えます。
foo()[0] のように、関数の返り値を配列として扱えるようになりました。
クロージャ が $this をサポートするようになりました。
クラスのインスタンスを生成するときに、そのメンバーにアクセスできるようになりました (例: (new Foo)->bar())。
Class::{expr}() 構文をサポートするようになりました。
二進数フォーマットが追加されました。0b001001101 のように使えます。
パースエラー時のパーサからのメッセージや関数コール時の引数が間違っている場合の警告メッセージが改善されました。
セッションモジュールで、ファイルのアップロード状況を追跡できるようになりました。
CLI モードで動く、開発用のウェブサーバ が組み込まれました。

IE6の不具合対応という呪縛から解放される!


マイクロソフトがついに重い腰を上げたのか?

3月中旬より

Internet Exploreの強制バージョンアップを実行することになる。

いままでIE6への対応を無理やり実装してきた(まあそのほとんどがライブラリなんですが)

開発者の手間が省けることになる。

幅広いブラウザー、そのバージョン、およびスマートフォンを入れれば無数に存在する

テスト工程を省略できるメリットは計り知れない。

ちと寂しい気分にもなるのだが・・・

http://technet.microsoft.com/ja-jp/ie/hh859701

これで、今後はIE8以上をマークしておけばいいのかな?

まあ、イレギュラーがありそうだが

例えば、最新のサービスパックになっていないOSの場合、バージョンアップはされないのかもしれない?

今後の各種ブラウザーの動きも楽しみだ。