Can't solve 'infinite loop' with AzureSpatialAnchorsSample - hololens

I downloaded the data from github and ran it. (github 'https://github.com/microsoft/OpenXR-Unity-MixedReality-Samples)
When I run it on HoloLens 2, it loads infinitely. When I run it in Unity, the following message is displayed in the debug window.
'There are 2 event systems in the scene. Please ensure there is always exactly one event system in the scene'
In Hierarchy, there is an event system existed in MixedRealityPlayspace > Main Camera and AR Session Origin > AR Camera.
When I cancel the Event System of the Main Camera,
'ARAnchorManager not enabled or available ; sample anchor functionality will not be enable. This application is not using the recommended Audio Spatializer Plugin. Go to Project Settings > Audio > Spatailizer Plugin and select one of the following : MS HRTF Spatializer, Microsoft Spatializer'
Import custom package Microsoft.SpatialAudio.Spatializer.Unity.1.0.18.unitypackage and
MixedRealityPlayspace > Main Camera > Event System unchecked, or Camera unchecked
If you uncheck AR Session Origin > AR Camera > Event System, or uncheck Camera, it is still
'There are 2 event systems in the scene. Please ensure there is always exactly one event system in the scene'
or
'ARAnchorManager not enabled or available; sample anchor functionality will not be enabled.'
A message similar to
Ask for help with these issues.

Did the message "ARAnchorManager not enabled or available" disappear when you run on Hololens?
I suppose it happens only on PC because PC does not support AR Anchor

T.LIM
I'm not sure if you have made any progress on this. If you have not, please file an issue here so the responsible engineer can take a look.

Related

How to start and stop a video as well as a Timeline with Vuforia?

I am very new to Unity / Vuforia scripting and really need help.
I have composed a whole Timeline in unity but cannot trigger an event ... there are still code errors ...
In the DefaultTrackableEventHandler script, I understand that you have to attach a piece of code that allows these events to be triggered but I haven't been able to do this for 48 hours. Help from the community would be very useful. please.
Here is the scenario:
When launching the application a video should appear. When the target is found, the video should stop to leave room for the Timeline which is triggered automatically, since the target has been found. If the user loses the target then the Timeleine will have to stop and the starting video will have to start again.
Someone could help me with this problem that has taken my head for 48 hours ...
thank you so much
Looks like you have to write scripts that contains differents functions that manage all those points. One script that starts and stops your video (2 different functions), and a other that starts and stops your timeline. (Don't forget to hide the video when you stop it)
Once you have those scripts you can attach them to a object and then, use them in DefaultTrackableEventHandler. (You add you function to the right event by clicking the + button, dragging your object with the script and choosing the right function to use).
Screenshot of DefaultTrackableEventHandler

Stop casting/disconnect box is tiny on my Android Cast app

I'm familiarizing myself with the Google Cast SDK by building a small test application, following the Cast SDK for Android guide. I've created a standard ActionBarActivity-based app as the guide suggests (even though ActionBarActivity is deprecated... shrug) I've added all the library dependencies, added the necessary XML to AndroidManifest.xml and menu_main.xml and am using the MediaRouteActionProvider to handle device detection and to show/hide the Cast button in the action bar. All is working well, and the "Connect to device" box appears as it should when I tap the Cast Button.
However, when I tap the Cast button again to disconnect, the "Stop Casting" box appears but it is unusually small.
The box is supposed to be wide enough to show the volume bar -- in my super-small version, the volume slider does in fact show up but it is unusably small. Compare to what it is supposed to look like, for example as in the YouTube app shown below.
Any idea what could be going on here? I am using basically the exact code that the Cast SDK for Android guide uses (the only addition being some custom Buttons with onClick listeners to control the media playback and to start casting several different test streams (both audio and video.)
This is due to changes that were made into the Media Router Support library and will be fixed in future updates to that library. If absolutely needed, the current workaround is to override that dialog.

WM_PAINT not send when using WS_EX_COMPOSITE

I'm working in a legacy application using MFC.
We have a mechanism to enable/disable controls depending on some business logic.
This mechanism is implemented in the CView-derived class. The way it works is all the views in the application derived from a common CView-derived class (CBaseView) and on the PreTranslateMessage all controls of the view are enabled/disabled.
This worked fine so far because all controls send at least WM_PAINT message when they need to be painted. So the system worked without the user having to move the mouse or anything. I recently added some drawing features and I had to use WS_EX_COMPOSITE to get ride of some flickering. With this flag activated my CView-derived class is not getting any called to PreTranslateMessage when creating the view....so the controls are not disabled until the user moves the mouse over the control.
I understand there is no way to send WM_PAINT using WS_EX_COMPOSITE but is there other message I can use to get the same behaviour???
Edited:
I am currently using the OnIdle approach but it has a big drawback, the windows doesn't become idle until after drawing all the controls...so when you enter the screen al controls are enabled and inmediately they are disabled...this makes a quite ugly effect!
More solutions???
Thanks in advance...
The logical place to enable/disable controls would be CView::OnUpdate, it is called by the framework after the view's document has been modified and from OnInitialUpdate(); you can also call this function if there is some change that would trigger re-evaluation of your business logic.
EDIT
After reading the question a bit more closely, what you could also do is to post a private message at the end of OnInitialUpdate and "catch" it in your PreTranslateMessage:
PostMessage(WM_APP, 0, 0);
Calling InvalidateRect followed by UpdateWindow against the window in question will mark the entire client area as dirty and force an immediate repaint. Remember that WM_PAINT is not really a message, in the queue in the usual sense, it is pushed out after all other messages have been processed for that window, which would include any invalidations of the area being drawn. No message is generated at all if there are no invalid segments of the active window display.

show a specific view when application returns to foreground [duplicate]

How do I prevent my GUI from redraw when it comes back from lock screen after receiving a UILocalNotification? In didReceiveLocalNotification I present a modal view, but the old state of my view controllers is shown for a moment before that. How do I prevent this?
Also the order of events I get when I come back on local notification from background is as following:
1. UIApplicationWillEnterForegroundNotification
2. UIApplicationDidBecomeActiveNotification
3. didReceiveLocalNotification
When I come from lock screen:
1. didReceiveLocalNotification
2. UIApplicationDidBecomeActiveNotification
Why is this difference and whether there is something else I'm missing?
Thanks
Here's how it was solved. May be it's not the way, but it worked for me. Since my application is voip/audio, it doesn't come to didFinishLaunchingWithOptions... I found out, that iOS uses a cached image from a previous state for animation when it resumes from background or from sleep mode. So the solution is basically to exchange this cached image with my default.png image. I do it in applicationWillResignActive delegate. There I add a modal view with a Default.png picture and dismiss it in applicationDidBecomeActive. This is really in short. Hopefully it will help somebody else with the same problem.
You can provide a custom image that is displayed when launching/resuming from a local notification. Simply set the alertLaunchImage property on your local notification to the name of the correct image.
From the Docs:
The string is a filename of an image file in the application bundle. This image is a launching image specified for a given notification; when the user taps the action button (for example, “View”) or moves the action slider, the image is used in place of the default launching image. If the value of this property is nil (the default), the system either uses the previous snapshot, uses the image identified by the UILaunchImageFile key in the application’s Info.plist file, or falls back to Default.png.
alertLaunchImage

redraw GUI on didreceivelocalnotification when come from lock screen iphone

How do I prevent my GUI from redraw when it comes back from lock screen after receiving a UILocalNotification? In didReceiveLocalNotification I present a modal view, but the old state of my view controllers is shown for a moment before that. How do I prevent this?
Also the order of events I get when I come back on local notification from background is as following:
1. UIApplicationWillEnterForegroundNotification
2. UIApplicationDidBecomeActiveNotification
3. didReceiveLocalNotification
When I come from lock screen:
1. didReceiveLocalNotification
2. UIApplicationDidBecomeActiveNotification
Why is this difference and whether there is something else I'm missing?
Thanks
Here's how it was solved. May be it's not the way, but it worked for me. Since my application is voip/audio, it doesn't come to didFinishLaunchingWithOptions... I found out, that iOS uses a cached image from a previous state for animation when it resumes from background or from sleep mode. So the solution is basically to exchange this cached image with my default.png image. I do it in applicationWillResignActive delegate. There I add a modal view with a Default.png picture and dismiss it in applicationDidBecomeActive. This is really in short. Hopefully it will help somebody else with the same problem.
You can provide a custom image that is displayed when launching/resuming from a local notification. Simply set the alertLaunchImage property on your local notification to the name of the correct image.
From the Docs:
The string is a filename of an image file in the application bundle. This image is a launching image specified for a given notification; when the user taps the action button (for example, “View”) or moves the action slider, the image is used in place of the default launching image. If the value of this property is nil (the default), the system either uses the previous snapshot, uses the image identified by the UILaunchImageFile key in the application’s Info.plist file, or falls back to Default.png.
alertLaunchImage

Resources