krpano 1.19-pr7 with iOS 10 support

  • Hi,

    two days ago Apple has released the final iOS 10 version (the iOS 10 GM release) and unfortunately all bugs from the previous iOS 10 beta versions are still there...

    These bugs are related to WebGL usage with video-textures - for krpano this means related to panoramic-video and video-hotspot usage. Some iOS devices will crash and some others will get internal WebGL errors and then show only a black screen...

    After a lot of testing, trying and analyzing the Webkit browser sources, I was able to find the origin of the bug and crashes and workarounds to avoid them (btw as funny note - how far had it been come that it's necessary to review the browsers source code to be able to make stable webapps! *g* ;-))

    The reason for that iOS 10 bug is the new and 'faster' gpu-to-gpu video-texture code path in iOS 10.
    Unfortunately it's not faster, it's only buggier! *wink*

    For more about that iOS bug here a simple testcase/example (see the page-source for details):
    https://krpano.com/ios/bugs/ios10-webgl-video-texture-crash/


    Therefore here a new krpano version - krpano 1.19-pr7.

    Beside other smaller fixes it contains workarounds for that iOS 10 bug and supports also the new iOS 10 features like native-supported inline-video for the iPhone and muted autoplay videos. That means no need for an additional audio file for the iPhone anymore and better video/audio synchronization.

    Here a quick summary list of the changes in the krpano 1.19-pr7 release:

    • krpano viewer
      • iOS 10 support (or better: workarounds for iOS 10 webgl+videotexture bugs)
      • Don't blacklist the CSS3D support for Chrome (Chrome 50 and higher) anymore. Older Chrome version had buggy CSS3D support, but the newer ones seems to be okay. So it's possible to fall back to CSS3D rendering when WebGL isn't available in Chrome (e.g. because of blacklisted GPU drivers).
      • Workarounds for a JIT-compiler bug in Chrome 51/52.
      • New: device.handheld setting (same as device.mobile or device.tablet check)
      • Change: Report plugin/layer/hotspot loading errors also via the 'onloaderror' event.
      • Fix: When wait(0) was called directly after blending to new pano, this caused an endless waiting (Flash-only).
      • Fix: Unnamed array items, but when the array itself is existent, weren't set (Flash-only)
    • videoplayer.js
      • iOS 10 support - native inline-video support on the iPhone.
      • New: muted setting - when set to true (=muted, no sound) autoplay is possible on iOS 10 (no touch required to start the video).
      • Fix: hide the iOS video play-button also on the newer iOS 9 versions on the iPhone when using videos as layer elements.
    • vtourskin.xml
      • Fix: The skin_lookat action wasn't using the v and fov parameters.
      • Fix: Show the gyro button also when using the little-planet-intro.


    According to Apple the public iOS 10 release is planed to be on 13.9.2016, so if you're using panoramic-video or video-hotspots and care about iOS 10, I would recommend updating to the latest krpano version to avoid crashes. And please keep in mind that the bug was in iOS 10 and not in krpano! *wink*

    Best regards,
    Klaus

  • Hello Klaus,

    Could you elaborate more on this point? What is an "Unnamed array item" exactly?

    Quote

    Fix: Unnamed array items, but when the array itself is existent, weren't set (Flash-only)

    Many thanks.

  • Hi,

    Simple question but the additionnal sound for iOS 9 and less videos integration will be ignored on iOS10 ? Or a check must be done manually to change url ?

    Yes, the additional sound and basically the whole iphone-workaround-case (that's a big internal code part) will be ignored/not used on iOS 10 or higher, because that's not necessary there. That's all automatic.

    If you want to support iOS versions before iOS 10, include an additional sound file, otherwise not.


    Can the dropplet/skin/etc... in 1.19pr7 be modified to exclude all Flash references so it will open in Chrome when hosted locally on a desktop?

    What or how do you mean that???
    Excluding all Flash references is possible of course (just edit the html and xml files and remove all swf references), but that's basically not necessary or wouldn't have any effect.
    And that wouldn't be related in any way to Chome local usage of HTML5 (that means the possibility to load of the local xml files in HTML5 in Chrome).


    Could you elaborate more on this point? What is an "Unnamed array item" exactly?

    E.g. when defining a hotspots without 'name' attribute (=unnamed):

    Code
    <hotspot url="..." ath="1" atv="1" />
    <hotspot url="..." ath="20" atv="20" />


    The 'hotspot' array itself is already predefined and when trying to set a new element (the 'hotspot') but where the name (the name 'hotspot') is an already an existing array, then krpano generates automatically a name and adds that element as item to that array.
    In the recent Flash versions this wasn't work by a small mistake.

    Best regards,
    Klaus

  • What or how do you mean that???
    Excluding all Flash references is possible of course (just edit the html and xml files and remove all swf references), but that's basically not necessary or wouldn't have any effect.
    And that wouldn't be related in any way to Chome local usage of HTML5 (that means the possibility to load of the local xml files in HTML5 in Chrome).

    We often use locally stored KRPano's for meetings and such. It is safer as we don'y have to worry about having internet access. If we created the pano using 1.18 it will open fine in Chrome. If we create the pano using 1.19 we get a security error and a message saying we should use a localhost testing server. Only Chrome creates the message, we can switch to Firefox and the version created in 1.19 will open as expected without the need for a localhost testing server. I was assuming that this error was created by Flash being included even though I have specified HTML5 version only.

    While this is not the end of the world it has prevented us from fully transitioning to 1.19 even though we much prefer the enhanced interface of 1.19.

  • Hi Klause,
    I´m having a problem with pr7 (i just tested with pr3 and the problem wasn´t there).
    I have 3 hotspot-styles in my krpano.xml and a hotspot looking like this:

    Code
    <hotspot name="spot-aqua3000" onclick="loadscene(aqua3000, null, MERGE, blend(1));" style="aqua3000" ath="-87.38" atv="-11.17" />

    In Safari the hotpot hasn´t just style "aqua3000" but it has all 3 styles. That means all the 3 images are overlapping each other - but not so in Chrome!

    Is there a possibility to download pr6/pr5 to test it there?

    Best regards,
    Marc

  • Hi,

    In iOS10, Chrome can not play video panorama.
    It plays as equirectangular fullscreen video.

    Is there anything I can do for that?

    The problem is the iOS webview - that inline-video-support isn't enabled there by default. As it seems the browser developers need to enable it manually.

    According to the information from the Chrome iOS developement here:
    https://bugs.chromium.org/p/chromium/issues/detail?id=395206
    https://chromium.googlesource.com/chromium/src.g…a83150c712bcfb2
    this should be already fixed and probably available soon in one of the next Chrome updates...

    Technically it would be possible to detect iOS browsers without inline-video-support to re-enable the old iOS-iPhone-workaround for them, but unfortunately the workaround itself doesn't work well in iOS 10 WebViews for some reason (I'm still researching here).

    Best regards,
    Klaus

  • Thank you for reply.

    According to the information from the Chrome iOS developement here:
    https://bugs.chromium.org/p/chromium/issues/detail?id=395206
    https://chromium.googlesource.com/chromi…a83150c712bcfb2
    this should be already fixed and probably available soon in one of the next Chrome updates...

    OK. I'll wait for future Chrome updates...
    ( Inline video support is big feature of iOS10 so this update may release soon ... I hope.)

    Technically it would be possible to detect iOS browsers without inline-video-support to re-enable the old iOS-iPhone-workaround for them, but unfortunately the workaround itself doesn't work well in iOS 10 WebViews for some reason (I'm still researching here).

    Some of existing iOS UIWebView based app don't implement allowsInlineMediaPlayback as true.
    So these app can't play video panorama in iOS10.


    Could you please fix this problem from contents side.
    ( Some of our customers use app based web viewer...)


    Thank you!

  • I have update to krpano 1.19-pr7, in ip6/ip6plus play panoramic-video is good , but in ip5/ip5s play panoramic-video only can play the sound and the video image is black screen, like not play video. can you help to check what cause this bug?

  • Hello to all!
    A week ago I built a demo for Pompeii, with stereoscopic 3D videopano. On IPhone 6s iOS 9 everything worked perfectly. Yesterday I upgraded to iOS 10.
    Result: the app does not work and gives me the error: "A Problem Occurred with this Webpage so it was Reloaded". I changed the video formats (from .mp4, to m4v, mov, mpeg, ...) but I can not fix it.
    On PC all works fine ...
    Someone knows a solution?


    Tis is the link:
    http://www.itlab.ibam.cnr.it/stereo_pompei/index.html[/size]


    Regards
    [size=10]Francesco

  • Someone knows a solution?

    Sorry, but please read the first post of the thread!
    It's about a new krpano version that works around the iOS10 bugs!
    That means the solution would be upgrading to that new krpano version! *wink*

    Beside of this - you have broken your videopano.xml - look at that part:

    Code
    if(device.ios,
    <!-- iOS Safari has a very slow 'video-to-webgl-texture' transfer, therefore use a low-res video by default -->
        videointerface_play('1024x512');
      ,
        videointerface_play('1920x960');
      ,
        videointerface_play('2560x1440');
      );

    That's an invalid if() syntax - see here:
    https://krpano.com/docu/actions/#if

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!