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サイトにて、フラッシュプレイヤーの再生が止まる場合は、まずイベント系を疑ってみましょう!!

return top