[php]HTTP_USER_AGENTによるWeb音楽プレイヤー切り分け
「Windows8のPCだとWeb音楽プレイヤーが表示されません」のお問い合わせを受けまして、Windows8マシンを触れる機会がありましたので対応&確認しました。
HTML5のaudioタグを表示するか、Flashの音楽プレイヤーを表示するかを、php側で切り分けしていたのですが、そこらへんに不具合があったので修正。
問題があったのは2点。
1.IE10に対応した分岐がなかった
2.IE11に対応した分気がなかった
1.については、こちらの分岐を作成したのがIE9の頃で、その後のIEリリースについて考えられていなかったため。要するにただの不具合でした…。
2.については、なんとまあ従来の方法(HTTP_USER_AGENTが「MSIE」かをチェックする)ではIEかどうかが判別できないようになっていたため。要は、IEの仕様変更(『IE11のユーザエージェント問題』を参照させていただきました)。
で、現状のphp該当箇所のソースはこんな感じになりました。
[php]
$agent = getenv( "HTTP_USER_AGENT" );
if(strstr($agent,"MSIE")){
// IE(6〜10)
if(strstr($agent,"MSIE 6.0")){
// IE6
// Flash mp3 playerを表示
}elseif(strstr($agent,"MSIE 7.0")){
// IE7
// Flash mp3 playerを表示
}elseif(strstr($agent,"MSIE 8.0")){
// IE8
// Flash mp3 playerを表示
}else{
// IE9・10だよ
// IE5以下のことは無視…
// HTML5 Audio mp3を表示
}
}elseif(strstr($agent,"Trident")){
// IE(11)
// HTML5 Audio mp3を表示
}else {
$classes .= "noie ";
if( strstr($agent,"Firefox")) {
// Firefox
// HTML5 Audio oggを表示
}elseif( strstr($agent,"Safari")) {
// Safari
// HTML5 Audio mp3を表示
}elseif( strstr($agent,"Chrome")) {
// Chrome
// HTML5 Audio mp3を表示
}elseif( strstr($agent,"Opera")) {
// Opera
// HTML5 Audio mp3を表示
}else{
// その他
// HTML5 Audio mp3を表示
}
}
[/php]
ということで、IE10&11に対応したのですが、IE10&11でaudioタグを表示させると、多分タッチパネル対応だからだと思うのですが、プレイヤーがでかいでかい!!
なんかちょっとバランス悪いよな〜と思う今日この頃でした。
-
前の記事
テレビ(レグザ)のリモコンが壊れたので修理してみた 2014.02.01
-
次の記事
Androidで(とりあえず)音を鳴らそう C/C++編 その1 2014.02.06