Skip to main content
Inspiring
August 5, 2012
Question

AIR bug with iOS fullscreen video! (easy repro)

Here's a bug with fullscreen AIR apps not dealing with iOS fullscreen video resize. Easy repro:

1. Create an mc with a background graphic aligned with the top and bottom of the stage. (This is so you can easily see the bug.)

2. Add a stageWebView and load an html page with embedded video. (or just load a video directly)

3. Play video and enable fullscreen mode.

4. Rotate device 90 degrees while in fullscreen mode and then hit "Done" button to return to stage (exit fullscreen).

5. BUG: Stage is now "pushed down" and off-screen. (even though the mc still traces x = 0)

Conclusion: the display bug occurs when the user exits the iOS native player fullscreen mode from a different orientation then they started with (common if the original aspect ratio was portrait)

Can someone else please confirm this? (The amount of stage "push" appears to corrolate with the height of the iOS status bar.)

Thanks.

PS. You don't necessarily need to load an html page. You can just have stageWebView load a video directly and experience the same result.

PPS. I also tried using the new UIWebView Native Extension and am seeing the same thing, so this is really looking like an AIR/Flash bug with the iOS native player.

This topic is closed to new replies. Start a new post to keep the conversation going.

4 replies

Participating Frequently
December 24, 2012

Hi - I realize this is an old post, but I can confirm the above.  Did you solve it?  Only way I can see to do it is to try to determine when fullscreen mode is exited and then do the following:

stage.displayState = StageDisplayState.NORMAL; //this is the mode it is in anyway after the fullscreen + rotate + unfullscreen

stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; //now set it to what you want it to be

But the problem is how to detect when the webview has gone fullscreen, then rotated, then gone unfullscreen...?

Translate
gtrAuthor
Inspiring
December 27, 2012

Yes, toggling the StageDisplayState works, but in addition, I needed to refresh the screen by removing and re-adding the visible child objects to correct the display bug. It's an ugly workaround resulting in screen flash on "refresh", but I can't find any other solution to this obvious AIR bug.

Thanks for confirming the bug, BTW. Adobe probably considers this an "edge" case, but it's a pretty big deal for iOS, IMO.

As far as listening to when the conditions are true (fullscreen-rotated-unfullscreen), I created a "didRotate" var to flag on a StageOrientationEvent and if true on exiting video fullscreen mode, I call my "screenRefresh" function to fix the display. What fun!

Translate
gtrAuthor
Inspiring
January 22, 2013

New bug report created.

Any interested parties in improved iOS support, please confirm and comment in the bug report. Thanks!

link:

https://bugbase.adobe.com/index.cfm?event=bug&id=3486264


A simpler summary for this issue:

If the device has been rotated since entering Fullscreen native player, a fullscreen app will be "pushed downwards" and off-screen slightly.

BUG: Adobe AIR app does not stay in fullscreen mode after such and event, ruining graphic UI for fullscreen apps.

Simple workaround: listen for on orientationChange and if stage.displayState == StageDisplayState.NORMAL, set to stage.displayState = StageDisplayState.FULLSCREEN.

However, iOS native player will lose traditional status bar appearance (and risk rejection by Apple??)

Complex workaround (as mentioned earlier) will keep the native player's status bar but result in the app's screen "flashing" upon resizing the stage.

Please help fix this bug by commenting in my bug report. Thanks again.

https://bugbase.adobe.com/index.cfm?event=bug&id=3486264

Translate