PlaybackParams missing in changeStream method

Based on documentation here:

https://doc.developer.milestonesys.com/mipsdkmobile/reference/protocols/mobile_command.html#command_ChangeStream

The changeStream method should contain PlaybackParams like SeekType, Speed, Time, etc.

How can I use them via .net SDK?

As you can see in my code, there is no possibility to use them:

imageVideoParams do not contain params like SeekType etc. What I want is to change time for existing playback stream created via RequestStream method (this method contains playbackParams).

Hi Michal,

The method you describe is much closer to the protocol, but in fact there are more convenient methods for controlling the playback directly in the stream channel (playback video channel).

For example, if we create the video like that:

var videoParams = new VideoParams
                {
                    CameraId = <CameraId>,
                    CompressionLvl = 90,
                    DestWidth = 640,
                    DestHeight = 480,
                    FPS = 15,
                    MethodType = StreamParamsHelper.MethodType,Push,
                    SignalType = StreamParamsHelper.SignalType.Playback,
                };
var playbackParams = new PlaybackParams
                    {
                        SeekType = PlaybackParamsHelper.SeekType.Time,
                        Time = dateTimePickerSeekTime.Value.ToUniversalTime(),
                    };
response = _connection.Video.RequestStream(videoParams, playbackParams, _timeout);
if(response.ErrorCode == ErrorCodes.Ok)
                    _video = _connection.VideoFactory.CreatePlaybackVideo(new RequestStreamResponsePlayback(response));

we could control the playback via:

var playbackVideo = _video as PlaybackVideo;
 
if (null != playbackVideo)
{
                playbackVideo.ChangePlayback(new PlaybackParams { Time = dateTimePickerSeekTime.Value.ToUniversalTime(), SeekType = PlaybackParamsHelper.SeekType.Time });
                playbackVideo.ChangePlayback(new PlaybackParams { Speed = speed });
}

or even via:

playbackVideo.PlaybackControl.GoToTime(dateTimePickerSeekTime.Value.ToUniversalTime());
playbackVideo.PlaybackControl.ChangeSpeed(speed);

This seems much more natural and easier.

Thanks. Exactly what I wanted. :+1: