14 using namespace System;
15 using namespace System::Collections::Generic;
17 class NativeMediaReciever;
18 interface class INativeMediaRecieverSink;
19 ref class StreamStateEventArgs;
20 ref class VideoFrameEventArgs;
21 ref class CacheBoundariesEventArgs;
22 ref class MessageLogEventArgs;
23 ref class StreamEventArgs;
24 ref class RecordingStatusEventArgs;
57 void Play(String^ url);
75 void SetPlaybackSpeed(Double speed);
82 void GotoTime(DateTime time);
90 bool StartRecording(String^ filename, Dictionary<String^, String^>^ metadata);
114 property bool IsPaused
118 return m_nativeMediaReciever !=
nullptr && m_nativeMediaReciever->IsPaused();
125 property bool IsPlaying
129 return m_nativeMediaReciever !=
nullptr && m_nativeMediaReciever->IsPlaying();
184 virtual void OnNewFrame(
const vn_player_frame_t* frame,
const vn_player_cache_boundaries_t* bounds) = INativeMediaRecieverSink::OnNewFrame;
185 virtual void OnBufferChanged(
const vn_player_cache_boundaries_t* bounds) = INativeMediaRecieverSink::OnBufferChanged;
186 virtual void OnStateChanged(VN_PLAYER_STREAM_STATE state,
const vn_player_result_status_t* result_status) = INativeMediaRecieverSink::OnStateChanged;
187 virtual void OnNewStream(
const vn_player_stream_info_t* stream_info) = INativeMediaRecieverSink::OnNewStream;
188 virtual void OnStreamRemoved(
const vn_player_stream_info_t* stream_info) = INativeMediaRecieverSink::OnStreamRemoved;
189 virtual void OnRecordingStatusChanged(
const vn_player_recording_status_t* status) = INativeMediaRecieverSink::OnRecordingStatusChanged;
190 virtual void OnMsgLog(
const char* message) = INativeMediaRecieverSink::OnMsgLog;
192 static Int64 ToUnixTime(DateTime date);
193 static DateTime ToClrTime(
long unixTime);
196 Object ^m_criticalSection;