Using the MobileSamples solution in .NET, with PlaybackSample as the startup project, once I log in I can see a list of the cameras, and when I select one it shows an image of the video feed and at the top left there’s a overlay detailing the date and time. The timestamp is still.
At the bottom there’s the rewind button (<), and input for date/time and the fast-forward button (>).
If I click rewind or fast forward it works. However if I want to specify a time, for example say 15mins ago, once I click on the input time and modify that, the video feed changes and the overlay is the same as before except 10 seconds later.
I thought this may be an issue with the system not recording footage around the clock but when I checked the official client I can see it has that footage and I can scroll to it and it’s just an issue with the SDK.
Ultimately for the integration we have, one of our goals is to spawn the app with a timestamp for an event and be able to play footage for that camera at that particular time.
Any help is appreciated
Hi @Joseph Twal,
Either I don’t understand what exactly you’re doing, or I just cannot reproduce the issue. The following works for me:
1. Run Playback sample
2. Connect to a server
3. Select a camera. A snapshot (still footage) appears.
4. Click in the time selector, over minutes.
5. Type some other value. Shapshot changes and timestamp gets updated.
Regards,
Nikolay
What you’ve listed is exactly what I’m doing however after changing the timestamp the time moves but not to the time I’ve modified it to. I thought the issue maybe because the footage is not available for that camera but checking the official app it’s recording around the clock and I can see footage for that time. Do you have any idea why this may be happening?
On top of that it’s just a still image. I only have the option to fast-forward or rewind. Is there an option to play it back in normal 1.0x speed?
What you currently describe makes no sense to me. Why are you talking about fast-forward? Have you modified the code of the sample?
Have a look at the code from GitHub: speed equal to 1 means it’s playing with normal speed forward:
private void OnButtonForwardClick(object sender, EventArgs e)
{
OnButtonChangeSpeed(buttonForward, 1);
}
private void OnButtonChangeSpeed(Button button, int speed)
{
speed = (button.Text == Pause) ? 0 : speed;
_playbackVideo?.PlaybackControl.ChangeSpeed(speed);
}
After you confirm that you got the original code from GitHub (link), do the test again and let me know if you still experience issues.
Code is the same. I just thought that it was running at a speed greater than 1.0x as when I pressed that button, the time felt like it was moving faster than 1.0x.
In any case, the first part of my message is still the issue.
What you’ve listed is exactly what I’m doing however after changing the timestamp the time moves but not to the time I’ve modified it to. I thought the issue maybe because the footage is not available for that camera but checking the official app it’s recording around the clock and I can see footage for that time. Do you have any idea why this may be happening?
It’s a test system, so I’m happy to give you the IP/Username/Password for you to recreate the scenario in the original GitHub code
Yes, let’s do that. Please send the IP/Username/Password to nid@milestone.dk.
My investigation showed that our sample does not properly cope with time zones.
All(!) timestamps provided to the backend should be in UTC time, and the sample passes local time. You basically found a client bug in the sample.
Required changes:
Line 145:
labelCurrentTime.Text = "Current time: " + TimeConverter.FromLong((long)frame.MainHeader.TimeStampUtcMs).ToLocalTime().ToString();
Line 217:
_playbackVideo?.PlaybackControl.GoToTime(dateTimePickerGoTo.Value.ToUniversalTime());
Sorry for the inconvenience. Changes will be reflected in GitHub with the next official release.
Regards,
Nikolay