AndroidOSにてFlashPlayerの再生がとまる件
notoです。
infobarにケータイを変えても全くもって使いこなしていません。
インストールしたアプリはgoogle readerぐらいです。。。
先日、仕事でandroidでswfobjectを利用してFlashPlayerを埋め込んだのですが
再生ボタンを押すと再生が止まる現象に出くわしました。
※Playerは、再生するとフルスクリーンになる仕様です。
Androidは横や縦にするとresize orientationchangeイベントがコールバックされ、
javascriptでイベントを拾うことができます。
対象のスマートフォンサイトのjavascriptを眺めていると、
resize orientationchangeイベントをキャッチしてhtmlに対してzoom属性を付加しているではないですか。。。
再生ボタンを押した場合、フルスクリーンで動画のバッファリングを開始しますが、
その直後にjsがイベントをキャッチして処理を行っている為、再生が止まると想定し
試しにイベントをキャッチしてる箇所を消してみると。。。
動く。。。こいつ動くぞ。。。
WHY?
何この動き。。。きもい。。。
なんとかjs内でどうにかできないかと試行錯誤しましたが、抜本的な解決にはいたらず。。。
試行錯誤の内容は、
clickイベントを拾ってみる
objectのclickイベントを拾って、resize orientationchangeをアンバインドしようと
試すと、初回タッチ時にはクリックイベントを拾うが、2回目にタッチするとイベントを拾ってくれない。
mousedownイベント mouseupイベントを拾ってみる
じゃあmousedownだ!と思い試すが、clickイベントと同じ。。。
touchstartイベント touchendイベントを拾ってみる
じゃあtouchstartだ!と思い試したところ、2回目にタッチしてもイベントを拾うぞ!!
しかし、プレイヤーをタッチした時に、touchstartイベントだけが発生して再生が開始される場合もあるしtouchstart touchendとイベントが発生する場合もある。。。
resize orientationchangeイベントをバインドするタイミングがわかんねーよ!!
touchstartイベント拾って、その時windowに対してバインドされてるイベントが存在するか否かを
判定して、アンバインドとかバインドすればいけんじゃね。。。とこのエントリーを書いてて思った。
試してみるか。できるのかしらんけど。。。
とりあえず、Androidサイトにて、フラッシュプレイヤーの再生が止まる場合は、まずイベント系を疑ってみましょう!!
コメント 0