You are not logged in.

Dear visitor, welcome to krpano.com Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Friday, May 15th 2020, 5:02pm

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.

This post has been edited 2 times, last edit by "stephnx" (May 18th 2020, 3:21pm)


2

Monday, May 18th 2020, 3:21pm

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>

3

Tuesday, May 19th 2020, 2:52pm

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...