360 Video playback in normal play mode staggering in landscape view on iOS

  • Hello everyone,

    I have a cordova 9 iOS app which plays 360 videos with Krpano WebVR player.
    Everything plays nice except in normal player mode if I turn the device to landscape the whole playback start's to stagger.
    Switching to stereo becomes fluent or turning the device back to portrait also completely fluent.

    If somebody knows a solution I would much appreciate!

    Thank you.

    2 Mal editiert, zuletzt von stephnx (18. Mai 2020 um 15:21)

  • UPDATE
    krpano at version 1.20.6
    So after a few hours I found the cause of the problem but no solution to it:
    The lags are coming from the videointerface.xml skin, but only if the video time is updating, so if I call the "skin_video_setup()" method (see bellow).
    I'm using the bellow code for about 5 years now and worked just fine (except that I was using the old skin 1.18 where there were 2 different methods to initialize the playback skin), but if anybody notices a problem with the bellow code please let me know.

    The application is generating an xml file on the phone and initializes as follows:

    <krpano>
    <include url="%SWFPATH%/plugins/webvr.xml" />
    <plugin name="WebVR" mobilevr_fake_support="true" mobilevr_wakelock="false"/>
    <layer name="webvr_button" ondown="video_auto_start();" />
    <control mousetype="drag2d" touchzoom="true" zoomoutcursor="true"/>
    <view fovtype="VFOV" fov="90" fovmin="40" fovmax="150" />
    <plugin name="video" keep="true" url.html5="%SWFPATH%/plugins/videoplayer.js" videourl.no-ios="LOCAL FILE NAME HERE" videourl.ios="LOCAL FILE NAME HERE" loop="true" pausedonstart="true" visible="false" onvideoready="loadscene(video_scene, null, MERGE|KEEPVIEW|KEEPMOVING, BLEND(1));"/>
    <events name="video_events" devices="mobile.or.tablet" keep="true" onmousedown="video_auto_start();" onremovepano="if(xml.scene != video_scene, plugin[video].seek(0); plugin[video].pause(); );"/>
    <action name="video_auto_start">if(video_auto_start !== true,if(plugin[video].ispaused,plugin[video].play();delayedcall(0.1, plugin[video].pause() );set(events[video_events].onmousedown, null);set(video_auto_start, true);););</action>
    <scene name="video_scene" onstart="plugin[video].play(); skin_video_setup();">
    <include url="%SWFPATH%/skin/videointerface.xml" />
    <image><sphere url="plugin:video" /></image>
    </scene>
    </krpano>

  • UPDATE

    I've noticed that if the player bar is hidden the video playback is still fluent, even though it's updating the time.
    Therefore I made a change in the videointerface.xml so whenever the plain 360 video starts it will start with the player bar hidden, when you tap on the screen the player bar shows but also pauses the video (since the bar is only needed to seek time in the timeline). After you press play, the player bar hides instantly.
    It's a compromise but at least the customer can use the app...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!