[Safari] html5/videoエレメントのイベントを調べる

html5/videoエレメントベースの動画プレーヤーがSafariだけうまく動かないとの相談あり。

JavaScriptで書かれたオープンソースの動画プレーヤーで、動画再生機能はvideoエレメントに委ねて、ロード中インジケータの表示やコントロールパネルの表示と制御、プレイリスト機能の追加などをJavaScriptで行っているみたい。JavaScript側ではブラウザから投げられたイベントを受けて処理を行っているので、Safariだけ挙動がおかしいということは他ブラウザとイベントの内容が違うのではないかと予想。

html/videoのイベントをトレースする

ネットを検索したら参考ページが見つかったので以下にリンク。

HTML5のvideo、発生するイベントの順序がブラウザによって違いすぎる – IT-Walker on hatena
http://d.hatena.ne.jp/Syunpei/20090714/1247571541

HMTL5 test room (勉強用:HTML 5の動作テスト)
http://www.openspc2.org/HTML5/test_room/video/

HTML5 videoエレメントのメディアイベントの仕様はW3Cで見つかる。

4.7 Embedded content — HTML5
http://www.w3.org/TR/html5/embedded-content-0.html#mediaevents

前者ページのJavaScriptコードをほぼそのまま頂いて、自分の環境でも試してみようと思う。

[Safari] パスワード保護されたディレクトリに置いた動画を再生しようとすると再び認証を求められる件

Safari限定で面倒な問題が発覚。たぶんWindows版とMac版の両方のSafariで起こる。自分で確かめたのはWindows版だけど、Mac持ちのスタッフに試してもらったら同じ挙動だと言われたので。

症状

サーバーには以下のようにファイルを配置。

test.htmlには以下のように動画を埋め込む。

Safariからtest.htmlにアクセスすると、BASIC認証を求められる。これは期待通りの挙動。

safari_auth

認証を通過してtest.htmlを表示すると、再びBASIC認証を求められる。これは期待外。ダイアログボックスの体裁は先ほどとは違って、Windows組み込みの認証ダイアログボックス。

qt_auth

どうして2度の認証を求められるのか?

ウェブブラウザのアクセスログ(XAMPP環境のApache)を見たら一目瞭然。

おおよそのシナリオは以下の通りで正解だと思う。

Safariはtest.htmlをロードしたら埋め込まれている動画の再生をキックするのだけど、動画再生は外部アプリ(ヘルパーアプリ)であるQuickTimeによって行われる。SafariとQuickTimeは完全に独立したアプリなので、SafariのBasic認証セッションはQuickTimeには引き継がれない。したがって、QuickTimeが動画にアクセスするときには再び認証が求められる。

2度目の認証をスキップするにはどうするか?

2度目の認証をしないようにする仕組みをサーバー側に仕込む必要があるだろうな。独自の認証処理を備えた動画データ送出のスクリプトを作成して、それをパスワード保護されないディレクトリに配置して、認証と動画送出の処理を自前で行うとか。でも、Safariだけのためにそこまでしたくないというのが正直な気持ち。

[Safari] MP4動画再生の挙動を調べる

H.264形式のMP4動画ファイルがSafariで再生されないという報告を受けて調べてみる。

テスタはMac版Safariで試しているというが、僕のデスクにはWindowsマシンしか無い。テスタに試してもらったところ、Windows版Safariでも同じ症状だというので、とりあえずWindows版Safariで挙動を確かめてみる。

Windows版Safariをインストール

まずはWindows版Safariをダウンロードしてインストール。「投稿日: 2012/05/09」とあるけど、Windows版はこれが最新みたい。

Windows 用 Safari 5.1.7
http://support.apple.com/kb/dl1531?viewlocale=ja_JP

MP4動画ファイルは再生されず

動画再生にはhtml5のvideoタグを使うが、

画面真っ白で何も表示されず。

QuickTimeが必須らしい

Safariでの動画再生にはQuickTimeが必須らしいのでインストール。

Apple – QuickTime – ダウンロード
http://www.apple.com/jp/quicktime/download/
QuickTime 7.7.6(Windows XP, Windows Vista or Windows 7)

videoタグのtypeオプションが必要らしい

QuickTimeインストール後に先ほどのhtmlを再度試す。

今度はコントローラは表示されるが、やはり動画は表示されない。

safari_video_controls

試しにtypeオプションでquicktime動画と指定したら

今度は問題なく表示された。Safariはちょっと面倒そう。

[Safari] JavaScriptコンソールを表示するには

ブラウザ依存のJavaScriptの挙動を調べるために、SafariでJavaScriptコンソールを表示しようとしたのだけど、メニューを探してもそれらしいものが無い。SafariにはJavaScriptコントロールが無いのか?と思ったが、探したら判りにくい場所にあったのでメモ。

“開発”メニューを表示する

[編集]-[設定]メニューを選択して、ダイアログボックスの[詳細]ペインを表示する。

safari_setup

[メニューバーに”開発”メニューを表示]をチェックしてダイアログボックスを閉じる。

すると[開発]メニューが表示されるようになる。

safari_menu

[エラーコンソールを表示]メニューを選択すればJavaScriptコンソールが表示される。

[Windows] Tera TermでSSH鍵ペアを生成する

WindowsにはSSH鍵ペアを生成するコマンドが用意されていないので、何かアプリを使う必要がある。以前はPuTTY付属のPuTTYgenで作ったけど、Tera Termでも作れるらしい。

Tera TermにおけるSSH鍵の生成方法

Tera Termを起動して[Setup]-[SSH KeyGenerator…]メニューを選択すると、[TTSSH: Key Generator]ダイアログボックスが表示される。

tt_ssh_keygenerator

[Generate]をクリックしてから、キーパスフレーズを入力。そして、[Save public key]と[Save private key]をそれぞれクリックして、鍵データをファイルに保存すればよい。

[Unix] システム情報を調べるには

CPUのタイプを表示する

PCのホスト名を表示する

カーネルのバージョンを表示する

OS名を表示する

OSのリリース日を表示する

全ての情報を表示する

Debianのバージョンを表示する

Ubuntuのバージョンを表示する

参考サイト

カーネルのバージョンなどのシステム情報を調べるには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/068infokernelver.html

[VirtualBox] ビューモードの切り替え方法

VirtualBoxのビューモードの切り替えは[ビュー]メニューから行う。

0012

あるいは下表に示すショートカットキーを使って。

モード ショートカットキー
フルスクリーンモード Host + F
シームレスモード Host + L
スケールモード Host + C
ゲストOSの画面を自動リサイズ Host + G
ウィンドウのサイズを調整 Host + A

[Host]は、[Oracle VM VirtualBox マネージャ]ウィンドウの[ファイル]-[環境設定…]メニューの[入力]ペインで設定するキーで、デフォルトは右コントロールキー。

[VirtualBox] 共有フォルダを設定する

VirtualBoxでは、ホストとゲストの間で共有フォルダを設定できる。共有フォルダは、ホストとゲストの間で手軽にファイルを受け渡しするのに役に立つ。

共有フォルダの設定は、[Oracle VM VirtualBox マネージャ]ウィンドウの[設定]アイコンをクリックして行うのだが、初めて共有フォルダを設定しようとしたら以下のメッセージが表示された。

vb_shared_folder_01

これは、共有フォルダを有効にするためには[VirtualBox Guest Additions]と呼ばれる追加ソフトが必要だと言っている、

VirtualBox Gurst Additions のインストール方法

以下に僕が行った設定手順を覚え書きしておく。ちなみに、ゲストはWindows 7。

1. ゲストOSが稼動している状態で、[Devices]-[Insert Guest Additions CD Image…]メニューを選択する。

vb_shared_folder_02

2. エクスプローラを起動してCDドライブを開く。

すると、CDドライブにメディアが入っているように見えるはず。

vb_shared_folder_03

3. [VBoxWindowsAdditions]をダブルクリックする。

すると、[Oracle VM VirtualBox Guest Additions 4.3.18]のインストーラが実行される。

vb_shared_folder_04

4. デフォルト設定でインストールを完了し、リブートを促されたらリブートする。

これで共有フォルダの利用が可能になるので、最初に戻って共有フォルダを設定すればよい。

参考サイト

VirtualBox 共有フォルダー設定 – ホストとゲスト間でフォルダーを共有 – PC設定のカルマ
http://pc-karuma.net/virtualbox-folder-share/

VirtualBoxの使い方 – Guest Additions のインストール – PC設定のカルマ
http://pc-karuma.net/virtualbox-install-guest-additions/

[Unix] Windows版のnslookupで名前解決する

nslookupはネームサーバーに名前解決の問い合わせを行うコマンド。自分はネームサーバーの設定を行っているわけではないので、このコマンドを頻繁に使うわけではないけど、サイトに接続できないなどのトラブル発生時にはIPアドレスを引いたりするのに使うことはある。

Unix版と同等の機能を備えたnslookupコマンドがWindowsにも標準で含まれている。

以下簡単にメモ。

コマンドラインから起動

正引き

逆引き

ネームサーバー変更

終了してコマンドラインへ戻る

Windows TIPS:nslookupの基本的な使い方(イントラネット編) – @IT
http://www.atmarkit.co.jp/ait/articles/0307/19/news003.html