Posts by BOX

    I'm building a pano that has 3 sources for live video streams in which the user can choose to watch. What xml setup is the best to give the user a seamless transition to changing the source? What I mean by seamless is to NOT have a pause in playback when they switch cameras? I'm aware loading and buffering causes a delay, so showing a spinner while the current stream plays and when the next stream is ready hides the spinner and displays the new stream.

    Should I handle this with <scene>s?

    Xml example would be VERY much appreciated, this is going live in a week for a very big globally televised event.


    On a side note: It would also be a huge help to see an example of a live stream xml. The documentation just mentions the different live formats for videoplayer and I'd like to see this work on HTML5 and Flash!

    I know textfields and nested structures doesn't work as VR sports. That's why I wanted to watch working example *smile*

    Ahhh, i see now.

    So I guess I either handle this in pure javascript or simply swap out and resize.

    I successfully tested swapping out the hotspot url for the content and sizing it accordingly. Works.

    Now back to the goal at hand. Onrollout event...

    I tested onmouseout, mouseout, onmouseleave, and mouseleave. Nothing. Then I thought why rule anything out when playing "closed-source" guessing games, and tried "onout". Viola!!!!

    VR Cursor triggers an onout event! SWEET!

    Wow OK, maybe this is what Umalo was getting at, but I was able to run a test on adding <layer>s to hotspots but when VR mode is enabled it causes all the hotspots to disappear :(

    Looks like I may have to swap image with the hotspot for this to work, if adding layers wont.

    Any online example?

    Sorry, nothing yet, it's an iOS App and I have been developing it locally. I actually haven't even tested the hotspots in VR, currently I've been testing it regularly with mouse clicks.

    textfield is not working in VR (not yet)

    What!? Does that mean I will have to use images only for the text overlay layers?? I really should have started testing this in VR...



    Currently I'm using the WebVR cursor to click hotspots which display a textfield layer within the hotspot (parent). Works like a charm. What I'm trying to accomplish now is a method of hiding the textfield layer once the cursor rolls off of the hotspot/textfield. Another words, hide hotspot's text on rollout.

    I've attempted saving and checking (onviewchanged) the opened hotspot's spheretoscreen coords and hiding the hotspot text when the hotspost corrds have apdated to certain distance. But it's unreliable as the coordinates are sometimes NaN and the distance moved isn't as consistant as I expected due to distortion.

    Is there an out-of-the-box solution for this already with WebVR? Or can anyone think of a way to code it?



    the workaround itself is basically simple:
    - the viewer wait for touch events anywhere on the page (capture-phase 'touchstart/touchend' event listeners on the document)
    - and when getting them, the viewer tries to start playing the video,
    - when staring to play had worked, then these event listeners will be removed.
    That's it...

    Best regards,

    I see. Most likely -> iframeContentWindow.postMessage -> -> won't work because of security reason? Or is it worth a try? Or shall I try something more experimental like document.touchstart -> (move iFrame under touch) -> iFrame document receives touchend event?



    forwarding or synthesizing an event doesn't work - only REAL users events would work.
    That's are core (security-)limitations of mobile devices and they are designed to be not bypass-able.

    Best regards,

    I thought that the workaround was to pass the touch event to the video element so that the video will play no matter where they click if set to auto play on iOS. Seems that your saying that passing events isn't possible and this workaround functions in a different way. Perhaps the only possible way would be to get the iFrame under the initial touch somehow. Thoughts?

    To my understanding the touchworkarounds works to pass any screen touch to the videoplayer to begin playing on iOS.

    The ad I'm developing opens a pano in an iFrame when the user touches the screen, but this touch doesn't pass to the pano's iFrame to trigger the touchworkaround.

    Not being able to see the source code of touchworkaround makes it very difficult to develop a workaround for the iFrame receiving this touch event.

    I think the best way would be to eith pass the touch to the iFrame element itself or to pass and receive the event through the JS postMessage/addEventListener('message') methods.


    iOS 10 has a video bug that leads to crashes.
    krpano version 1.19-pr7 and higher are containing workarounds for that iOS 10 bug to avoid the crashes.

    For more details please read here:
    krpano 1.19-pr7 with iOS 10 support

    Thanks for the fix the upgrade worked but now there are two new issues with looping video. 1) On iPhone video only plays once and doesn't loop 2) When looping works on desktop, it flickers to show the static pano when it restarts.

    Edit: sorry, I just needed to upgrade to the newest video player.js

    On all browsers my video pano works except now when I load it up on iPhone, it keeps reloading the page saying "A problem occurred with this webpage so it reloaded". Happened 4 times quickly then fails saying "a problem repeatedly occurred on…ot-pano/static/".

    I've deleted all my other plugins changed settings on the video plugin and so on and I can't figure this out. Does it have to do with the fact I'm trying to play automatically? It only occurs after I call play() on the video or "paused at start" is false.

    I've seen videos on this site work so I know it's not my phone perse.

    Please help I'm lost for ideas.

    The link:…ot-pano/static/


    I've built an app that switches camera angles of sporting events.

    I successfully created a pano with multiple sources, and when layers of the skin are clicked, the video source changes using playvideo(...). More specifically:

    plugin[video].playvideo(get(vs.videourl), get(vs.posterurl), get(plugin[video].pausedonstart), get(plugin[video].time));

    This works great, but the issue is that when the playvideo(...) is called, the current video is paused/stopped, one or two seconds go by, and then the next video plays.

    Being this demo needs to seem like it it streaming a live streaming video event, it cannot have any delay when changing videos. Note, in my development, all files are local and not from a CDN or streaming network.

    I created a video screengrab of the app working if needed, just let me know and I will put it online. But I hope I explained it OK.

    Would using multiple videoplayer scenes work?

    If I don't come up with a more seamless method of sharing one pano, my plan B is to have 3 panos on top of each other and toggle their visibility and pause/resume them seamlessly. Its not ideal or optimized, so that's why I'm requesting a better idea.


    I'm aware autoplay and sound have workarounds for Safari iOS, but I'm currently building an iOS PhoneGap App that obviously doesn't use Safari, but the uses the native WebView that Safari uses. This means that no workaround is needed for this, but it behaves as if it IS Safari... Whats going on with this? How do I stop the videoplayer plugin from performing the workarounds? It should autoplay and have audio without a hitch...

    I tried setting iphoneworkarounds and touchworkarounds to false, didn't effect it.


    Thanks for the help. onerror never calls with these network errors... panovideosupport has a false flag as it's not aware of the issue. Ideally if a script could be written to run before the video plugin runs, it could be resolved.

    Its not ideal, but i used device tags and it worked, and just in time. But I'd still like a more dynamic solution if possible. Here is what I did since the video was failing on Safari Desktop and IE11:

    I'm having trouble loading with Safari and IE 11. Other browsers seem to load fine. I know there is a bug with Safari crossdomain video even with CORS, and don't know whats up with IE. Both say "loading video failed" in the log popover...

    As much as I love the video pano, I need to create a fallback to simply show an image pano sphere. How can I do this without showing errors?

    Can I do something with onvideoerror plugin listeners? Or do i do something dynamic with <image devices=""> since I know the browsers that are causing trouble?


    BTW I'm using v1.18.5