示例#1
0
        /// <summary>
        /// Load the GStreamer library and attach it
        /// to the specified window.
        /// </summary>
        public bool Initiate()
        {
            // load the gstreamer library
            IntPtr ptr = gst_binding_init();

            if (ptr == IntPtr.Zero)
            {
                throwError("Failed to load the Gstreamer library", "");
                return(false);
            }
            else
            {
                engine = new HandleRef(this, ptr);
            }


            // set up callbacks
            eos_cb    = new eosCallback(onEos);
            error_cb  = new errorCallback(onError);
            buffer_cb = new bufferCallback(onBuffer);
            info_cb   = new infoCallback(onInfo);
            tag_cb    = new tagCallback(onTag);

            gst_binding_set_eos_cb(engine, eos_cb);
            gst_binding_set_error_cb(engine, error_cb);
            gst_binding_set_buffer_cb(engine, buffer_cb);
            gst_binding_set_info_cb(engine, info_cb);
            gst_binding_set_tag_cb(engine, tag_cb);


            status = MediaStatus.Unloaded;

            return(true);
        }
 /// <summary>
 /// Updates the status.
 /// </summary>
 /// <param name="mediaId">The media id.</param>
 /// <param name="userId">The user id.</param>
 /// <param name="mediaStatus">The media status.</param>
 public void UpdateStatus(int[] mediaId, int userId, MediaStatus mediaStatus)
 {
     foreach (int id in mediaId)
     {
         UpdateStatus(id, userId, mediaStatus);
     }
 }
示例#3
0
        private static void ChromeChannel_StatusChanged(object sender, EventArgs e)
        {
            MediaStatus mm = CurrentChannel.Status.FirstOrDefault();

            IsPlaying   = (mm.PlayerState == "PLAYING");
            IsBuffering = (mm.PlayerState == "BUFFERING");
            IsIdle      = (mm.PlayerState == "IDLE");
            IsPaused    = (mm.PlayerState == "PAUSED");

            BufferTime = CurrentTime;
            PausedTime = CurrentTime;

            if (IsPlaying && RequestNextTime != -1)
            {
                print("SET NEXT REQUEST TO -1");
                RequestNextTime = -1;
            }

            if (_IsPaused != IsPaused)
            {
                _IsPaused = IsPaused;
                Device.BeginInvokeOnMainThread(() => {
                    OnPauseChanged?.Invoke(null, IsPaused);
                });
            }


            print("STATE::" + mm.PlayerState);



            castUpdatedNow = DateTime.Now;
            castLastUpdate = mm.CurrentTime;
        }
示例#4
0
        public static async Task play(string url, string title, string subtitle, string image)
        {
            mediaChannel = sender.GetChannel <IMediaChannel>();
            await sender.LaunchAsync(mediaChannel);

            var mediaInfo = new MediaInformation()
            {
                ContentId = url
            };

            mediaInfo.Metadata = new GenericMediaMetadata();
            if (title != null)
            {
                mediaInfo.Metadata.Title = title;
            }
            if (subtitle != null)
            {
                mediaInfo.Metadata.Subtitle = subtitle;
            }
            if (image != null)
            {
                mediaInfo.Metadata.Images    = new GoogleCast.Models.Image[1];
                mediaInfo.Metadata.Images[0] = new GoogleCast.Models.Image()
                {
                    Url = image
                };
            }
            mediastatus = await mediaChannel.LoadAsync(mediaInfo);
        }
示例#5
0
        public void ChangeStatus(IMediaItem inItem, MediaStatus inStatus)
        {
            var item = (TvEpisode)inItem;
            item.Status = inStatus;

            Cabinet.SetAsync(item).Wait();
        }
        public int GetMediaStatusIdCodeFromMap(MediaStatus status)
        {
            int statusId;

            MediaStatusMap.TryGetValue(status, out statusId);
            return(statusId);
        }
示例#7
0
 // 일시정지 버튼
 private void pauseButton_Click(object sender, EventArgs e)
 {
     this.mediaControl.Pause();
     this.mediaStatus = MediaStatus.PAUSED;
     UpdateToolBar();
     UpdateStatusBar();
 }
示例#8
0
 // 재생 버튼
 private void playButton_Click(object sender, EventArgs e)
 {
     this.mediaControl.Run();
     this.mediaStatus = MediaStatus.RUNNING;
     UpdateToolBar();
     UpdateStatusBar();
 }
        /// <summary>
        /// Gets the list items.
        /// </summary>
        /// <param name="status">The status.</param>
        /// <returns></returns>
        public List <SelectListItem> GetListItems(MediaStatus status)
        {
            List <SelectListItem> items = PhotoHtmlHelper.PrivacyList();

            items.ForEach(o => o.Selected = o.Value.Equals(status.ToString(), StringComparison.InvariantCultureIgnoreCase));
            return(items);
        }
示例#10
0
 private void dispatcherTimer_Tick(object sender, EventArgs e)
 {
     pl_update();
     if (status != MediaStatus.None && status != MediaStatus.Stopped) // преобразовываем 1 в 01
     {
         current_time.Content = String.Format("{0:d2}", audioFileReader.CurrentTime.Minutes) + ":" + String.Format("{0:d2}", audioFileReader.CurrentTime.Seconds);
         time.Content         = String.Format("{0:d2}", audioFileReader.TotalTime.Minutes) + ":" + String.Format("{0:d2}", audioFileReader.TotalTime.Seconds);
         progress_bar.Value   = audioFileReader.CurrentTime.TotalSeconds;
         if (audioFileReader.Length == audioFileReader.Position)
         {
             if (repeat)
             {
                 play(song_list[music_pos]);
             }
             else
             {
                 if (music_pos < song_list.Count - 1)
                 {
                     music_pos++;
                     play(song_list[music_pos]);
                 }
                 else
                 {
                     music_pos = 0;
                     status    = MediaStatus.Stopped;
                     directSoundOut.Stop();
                     clear_time();
                 }
             }
         }
     }
 }
示例#11
0
 private void PlayOrPause_Click(object sender, RoutedEventArgs e) // нажатие на кнопку воспроизведения
 {
     try
     {
         if (song_list.Count > 0)
         {
             if (status == MediaStatus.None)
             {
                 play(song_list[0]);
             }
             else if (status == MediaStatus.Running)
             {
                 directSoundOut.Pause();
                 status = MediaStatus.Paused;
             }
             else if (status == MediaStatus.Paused)
             {
                 directSoundOut.Play();
                 status = MediaStatus.Running;
             }
             else if (status == MediaStatus.Stopped)
             {
                 play(song_list[music_pos]);
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
示例#12
0
        private void RunVideo(int Number)
        {
            switch (PlayStatus)
            {
            case MediaStatus.Play:
                return;

            case MediaStatus.Pause:
                if (WarningGrid.Opacity > 0)
                {
                    WarningGrid.BeginAnimation(OpacityProperty, OpacityAnimation(WarningGrid.Opacity, 0, 10));
                }
                else
                {
                    WarningGrid.BeginAnimation(OpacityProperty, OpacityAnimation(WarningGrid.Opacity, 1, 10));
                    WarningMessage();
                    return;
                }
                break;

            case MediaStatus.Stop:
                ImageGrid.BeginAnimation(OpacityProperty, OpacityAnimation(ImageGrid.Opacity, 0, 500));
                break;
            }

            mediaElement.Source = null;
            mediaElement.Source = new Uri(Path.GetFullPath(Config.GetConfigValue("video_" + Number.ToString())));

            StopList = Config.GetStringList("video_" + Number.ToString() + "_stop");

            mediaElement.Play();
            PlayStatus = MediaStatus.Play;
        }
        private void MediaChannel_MessageReceived(object sender, [AllowNull] MediaStatus mediaStatus)
        {
            if (loadedMediaStatus != null)
            {
                if (mediaStatus != null)
                {
                    if ((mediaStatus.PlayerState == PlayerState.Idle) &&
                        (mediaStatus.MediaSessionId == loadedMediaStatus.MediaSessionId))
                    {
                        switch (mediaStatus.IdleReason)
                        {
                        case IdleReason.CANCELLED:
                        case IdleReason.ERROR:
                        case IdleReason.INTERRUPTED:
                            playbackFinished.SetException(new MediaLoadException(device.Name,
                                                                                 mediaStatus.IdleReason.ToString()));
                            break;

                        case IdleReason.FINISHED:
                            playbackFinished.SetResult(true);
                            break;
                        }
                    }
                }
            }
        }
示例#14
0
 void changeState(MediaStatus state)
 {
     status = state;
     if (StateChanged != null)
     {
         StateChanged(new StateEventArgs(state));
     }
 }
        /// <summary>
        /// Retrieves the by status.
        /// </summary>
        /// <param name="status">The status.</param>
        /// <param name="userId">The user id.</param>
        /// <returns></returns>
        public List <Media> RetrieveByStatus(MediaStatus status, int userId)
        {
            List <Media> media = database.PopulateCollection("Media_RetrieveByStatus", new { status = status.ToString(), userId }, database.AutoPopulate <Media>);

            _hydrationService.Populate(media);

            return(media);
        }
示例#16
0
 public void LoopOneSegment(int length, int start, int end)
 {
     if (this.mediaElement.NaturalDuration.HasTimeSpan)
     {
         media_start_pos_ = this.mediaElement.NaturalDuration.TimeSpan.TotalMilliseconds / length * start;
         media_end_pos_   = this.mediaElement.NaturalDuration.TimeSpan.TotalMilliseconds / length * end;
         media_status_    = MediaStatus.Loop_One_Segment;
     }
 }
示例#17
0
 public static async Task connectToChannel()
 {
     try
     {
         mediaChannel = sender.GetChannel <IMediaChannel>();
         mediastatus  = await mediaChannel.GetStatusAsync();
     }
     catch { }
 }
示例#18
0
        // 중단 처리
        private void Stop()
        {
            this.mediaControl.Stop();
            this.mediaPosition.CurrentPosition = 0;
            this.mediaStatus = MediaStatus.STOPPED;

            UpdateToolBar();
            UpdateStatusBar();
        }
        /// <summary>
        /// Updates the photos with apply action.
        /// </summary>
        /// <param name="postView">The post view.</param>
        private void UpdatePhotosWithApplyAction(ManagePhotoPostView postView)
        {
            MediaStatus mediaStatus = postView.MediaStatus.ParseEnum <MediaStatus>();

            if (postView.MediaId != null && postView.MediaId.Length > 0)
            {
                mediaRepository.UpdateStatus(postView.MediaId, user.Id, mediaStatus);
            }
        }
示例#20
0
        /// <summary>
        /// 열기 메뉴 항목 클릭시 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void openMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "미디어 파일|*.mpg;*.avi;*.wma;*.wmv;*.mov;*.wav;*.mp2;*.mp3|모든 파일|*.*";

            if (DialogResult.OK == openFileDialog.ShowDialog())
            {
                ReleaseResource();

                this.filterGraphManager = new FilgraphManager();

                this.filterGraphManager.RenderFile(openFileDialog.FileName);

                this.basicAudio = this.filterGraphManager as IBasicAudio;

                try
                {
                    this.videoWindow = this.filterGraphManager as IVideoWindow;

                    this.videoWindow.Owner       = (int)this.canvasPanel.Handle;
                    this.videoWindow.WindowStyle = WS_CHILD | WS_CLIPCHILDREN;

                    this.videoWindow.SetWindowPosition
                    (
                        this.canvasPanel.ClientRectangle.Left,
                        this.canvasPanel.ClientRectangle.Top,
                        this.canvasPanel.ClientRectangle.Width,
                        this.canvasPanel.ClientRectangle.Height
                    );
                }
                catch (Exception)
                {
                    this.videoWindow = null;
                }

                this.mediaEvent = this.filterGraphManager as IMediaEvent;

                this.mediaEventEX = this.filterGraphManager as IMediaEventEx;

                this.mediaEventEX.SetNotifyWindow((int)this.Handle, WM_GRAPHNOTIFY, 0);

                this.mediaPosition = this.filterGraphManager as IMediaPosition;

                this.mediaControl = this.filterGraphManager as IMediaControl;

                this.Text = "DirectShow를 사용해 동영상 재생하기 - [" + openFileDialog.FileName + "]";

                this.mediaControl.Run();

                mediaStatus = MediaStatus.RUNNING;

                UpdateToolBar();
                UpdateStatusBar();
            }
        }
示例#21
0
 private void menuItem5_Click(object sender, EventArgs e)
 {
     MyVideo.Address = "rtsp://192.168.3.243";
     MyVideo.Connect();
     MyVideo.AttachWindow(panel1);
     MyVideo.Run();
     m_CurrentStatus = MediaStatus.Running;
     UpdateStatusBar();
     UpdateToolBar();
 }
示例#22
0
        public async Task UpdateStatus(HttpClient client)
        {
            HttpResponseMessage response = await client.GetAsync("https://tobenai.com/api/media/get/anime/status/" + SearchID);

            string statusJson = await response.Content.ReadAsStringAsync();

            MediaStatus status = JsonConvert.DeserializeObject <MediaStatus>(statusJson);

            Status = status;
        }
示例#23
0
 private void Open_Click(object sender, RoutedEventArgs e) // нажатие на кнопку стоп
 {
     if (status != MediaStatus.None && status != MediaStatus.Stopped)
     {
         directSoundOut.Stop();
         status = MediaStatus.Stopped;
     }
     progress_bar.Value   = 0;
     current_time.Content = "00:00";
 }
示例#24
0
        int pl_id             = -1; // id выбранного сейчас листа

        public MainWindow()
        {
            InitializeComponent();
            System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
            dispatcherTimer.Tick    += new EventHandler(dispatcherTimer_Tick);
            dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
            dispatcherTimer.Start();
            status = MediaStatus.None;
            pl_update();
        }
示例#25
0
        //////////////////////////////////////////////////////////////////////////////// Function

        #region 리소스 해제하기 - ReleaseResource()

        /// <summary>
        /// 리소스 해제하기
        /// </summary>
        private void ReleaseResource()
        {
            if (this.mediaControl != null)
            {
                this.mediaControl.Stop();
            }

            this.mediaStatus = MediaStatus.STOPPED;

            if (this.mediaEventEX != null)
            {
                this.mediaEventEX.SetNotifyWindow(0, 0, 0);
            }

            if (this.videoWindow != null)
            {
                this.videoWindow.Visible = 0;
                this.videoWindow.Owner   = 0;
            }

            if (this.mediaControl != null)
            {
                this.mediaControl = null;
            }

            if (this.mediaPosition != null)
            {
                this.mediaPosition = null;
            }

            if (this.mediaEventEX != null)
            {
                this.mediaEventEX = null;
            }

            if (this.mediaEvent != null)
            {
                this.mediaEvent = null;
            }

            if (this.videoWindow != null)
            {
                this.videoWindow = null;
            }

            if (this.basicAudio != null)
            {
                this.basicAudio = null;
            }

            if (this.filterGraphManager != null)
            {
                this.filterGraphManager = null;
            }
        }
示例#26
0
        /// <summary>
        /// 중단 버튼 클릭시 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void stopButton_Click(object sender, EventArgs e)
        {
            this.mediaControl.Stop();

            this.mediaPosition.CurrentPosition = 0;

            this.mediaStatus = MediaStatus.STOPPED;

            UpdateToolBar();
            UpdateStatusBar();
        }
示例#27
0
        /// <summary>
        /// Report Media status to JS
        /// </summary>
        public void ReportStatus(MediaStatus status)
        {
            PluginResult result = new PluginResult(PluginResult.Status.OK, new MediaChannelStatusAction()
            {
                Status = status
            });

            result.KeepCallback = true;

            DispatchCommandResult(result, messageChannelCallbackId);
        }
示例#28
0
/*
 * int AddToRot(object UnkGraph)
 * {
 *  IMoniker pMoniker = null;
 *  IRunningObjectTable pROT = null;
 *
 *  GetRunningObjectTable(0, pROT);
 *
 *  CreateItemMoniker("!", "MyMoniker", pMoniker);
 *  {
 *      //pROT->Register(ROTFLAGS_REGISTRATIONKEEPSALIVE, pUnkGraph,
 *      //    pMoniker, pdwRegister);
 *      //pMoniker->Release();
 *  }
 *  pROT.Release();
 *
 *  return 0;
 * }
 */
        private void menuItem2_Click(object sender, System.EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Media Files|*.mpg;*.avi;*.wma;*.mov;*.wav;*.mp2;*.mp3|All Files|*.*";

            if (DialogResult.OK == openFileDialog.ShowDialog())
            {
                CleanUp();
                //object Unk;
                m_objFilterGraph = new FilgraphManager();

/*                m_objFilterGraph.AddFilter(
 *                  "D:\\Expert\\onvif\\axis\\RTSP_source.090603\\RTSP_source.ax",
 *                  //"D:\\Expert\\onvif\\axis\\RTSP_source.090603\\RTSP_source.ax",
 *                  out Unk);
 */             m_objFilterGraph.RenderFile(openFileDialog.FileName);

                m_objBasicAudio = m_objFilterGraph as IBasicAudio;

                try
                {
                    m_objVideoWindow             = m_objFilterGraph as IVideoWindow;
                    m_objVideoWindow.Owner       = (int)panel1.Handle;
                    m_objVideoWindow.WindowStyle = WS_CHILD | WS_CLIPCHILDREN;
                    m_objVideoWindow.SetWindowPosition(panel1.ClientRectangle.Left,
                                                       panel1.ClientRectangle.Top,
                                                       panel1.ClientRectangle.Width,
                                                       panel1.ClientRectangle.Height);
                }
                catch (Exception)
                {
                    m_objVideoWindow = null;
                }

                m_objMediaEvent = m_objFilterGraph as IMediaEvent;

                m_objMediaEventEx = m_objFilterGraph as IMediaEventEx;
                m_objMediaEventEx.SetNotifyWindow((int)this.Handle, WM_GRAPHNOTIFY, 0);

                m_objMediaPosition = m_objFilterGraph as IMediaPosition;

                m_objMediaControl = m_objFilterGraph as IMediaControl;

                this.Text = "DirectShow - [" + openFileDialog.FileName + "]";

                m_objMediaControl.Run();
                m_CurrentStatus = MediaStatus.Running;

                UpdateStatusBar();
                UpdateToolBar();
            }
        }
示例#29
0
            private void SetupStatusSpinner(AppCompatSpinner statusSpinner, MediaStatus selectedStatus)
            {
                var statuses = AniListEnum.GetEnumValues <MediaStatus>();

                var displayStatuses = statuses.Select(x => x.DisplayValue).Prepend("All").ToList();

                statusSpinner.Adapter = new ArrayAdapter <string>(Activity, Resource.Layout.View_SpinnerDropDownItem, displayStatuses);

                if (selectedStatus != null)
                {
                    statusSpinner.SetSelection(statuses.FindIndex(x => x.Value == selectedStatus.Value) + 1);
                }
            }
 public void PlayMedia(string filePath)
 {
     if (this.currentFilePath != filePath)
     {
         this.currentFilePath = filePath;
         wmp.URL = filePath;
         wmp.settings.autoStart = true;
         _status = MediaStatus.Playing;
     }
     else if (_status == MediaStatus.Paused)
     {
         this.PauseMedia();
     }
 }
示例#31
0
        private RequestedState ConvertRequestedState(MediaStatus status)
        {
            if (status == MediaStatus.UNKNOWN || status == MediaStatus.PENDING)
            {
                return(RequestedState.None);
            }

            if (status == MediaStatus.AVAILABLE || status == MediaStatus.PROCESSING || status == MediaStatus.PARTIALLY_AVAILABLE)
            {
                return(RequestedState.Full);
            }

            return(RequestedState.None);
        }
示例#32
0
        private void CleanUp()
        {
            if (m_objMediaControl != null) {
                m_objMediaControl.Stop();
            }

            m_CurrentStatus = MediaStatus.Stopped;

            if (m_objMediaEventEx != null) {
                m_objMediaEventEx.SetNotifyWindow(0, 0, 0);
            }

            if (m_objVideoWindow != null) {
                m_objVideoWindow.Visible = 0;
                m_objVideoWindow.Owner = 0;
            }

            if (m_objMediaControl != null) {
                m_objMediaControl = null;
            }

            if (m_objMediaPosition != null) {
                m_objMediaPosition = null;
            }

            if (m_objMediaEventEx != null) {
                m_objMediaEventEx = null;
            }

            if (m_objMediaEvent != null) {
                m_objMediaEvent = null;
            }

            if (m_objVideoWindow != null) {
                m_objVideoWindow = null;
            }

            if (m_objBasicAudio != null) {
                m_objBasicAudio = null;
            }

            if (m_objFilterGraph != null) {
                m_objFilterGraph = null;
            }
        }
示例#33
0
 // Methods
 internal AudioAnimate(string prefix, string localname, string ns, SvgDocument doc)
     : base(prefix, localname, ns, doc)
 {
     this.m_objFilterGraph = null;
     this.m_objBasicAudio = null;
     this.m_objMediaEvent = null;
     this.m_objMediaEventEx = null;
     this.m_objMediaPosition = null;
     this.m_objMediaControl = null;
     this.fillColor = Color.Khaki;
     this.fileName = string.Empty;
     this.m_CurrentStatus = MediaStatus.None;
     this.timer = new Timer();
     this.oldtime = 0f;
     this.timertime = 0f;
     this.timer.Interval = 100;
     this.timer.Tick += new EventHandler(this.TimerTick);
 }
示例#34
0
        /// <summary>
        /// Plays the given mediafile in the internal mediaplayer
        /// </summary>
        /// <param name="FilePath">File to play</param>
        public void ShowMedia(string FilePath)
        {
            StopMedia();
            Lbl_CurrentMedia.Text = Path.GetFileName(FilePath);
            m_objFilterGraph = new FilgraphManager();
            m_objFilterGraph.RenderFile(FilePath);

            m_objBasicAudio = m_objFilterGraph as IBasicAudio;

            try
            {
                m_objVideoWindow = m_objFilterGraph as IVideoWindow;
                m_objVideoWindow.Owner = (int)panel2.Handle;
                //m_objVideoWindow.Owner = (int)panel1.Handle;

                m_objVideoWindow.WindowStyle = WS_CHILD | WS_CLIPCHILDREN;
                m_objVideoWindow.SetWindowPosition(panel2.ClientRectangle.Left,
                   panel2.ClientRectangle.Top,
                    panel2.ClientRectangle.Width,
                    panel2.ClientRectangle.Height);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                m_objVideoWindow = null;
            }

            m_objMediaEvent = m_objFilterGraph as IMediaEvent;

            m_objMediaEventEx = m_objFilterGraph as IMediaEventEx;
            m_objMediaEventEx.SetNotifyWindow((int)this.Handle, WM_GRAPHNOTIFY, 0);

            m_objMediaPosition = m_objFilterGraph as IMediaPosition;

            m_objMediaControl = m_objFilterGraph as IMediaControl;

            m_objMediaControl.Run();
            m_CurrentStatus = MediaStatus.Running;
            UpdateMediaButtons();

            //UpdateStatusBar();
            //UpdateToolBar();
        }
        //Medya nýn çalmasý için gerekli kýsým....
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_GRAPHNOTIFY)
            {
                int lEventCode;
                int lParam1, lParam2;
                while (true)
                {
                    try
                    {
                        m_obj_MediaEventEx.GetEvent(out lEventCode,
                            out lParam1,
                            out lParam2,
                            0);
                        m_obj_MediaEventEx.FreeEventParams(lEventCode, lParam1, lParam2);

                        if (lEventCode == EC_COMPLETE)
                        {
                            m_obj_MediaControl.Stop();
                            m_CurrentStatus = MediaStatus.Stopped;
                            if (videoplaying)
                            {
                                playerform.Close();
                                newPlayerIsCreated = false;
                                videoplaying = false;
                                CompleteAndReOpen = true;
                            }
                            UpdateToolStrip();
                            if (randomplay)
                            {
                                Random rand = new Random();
                                int fileturn = rand.Next(0, itemList.Items.Count - 1);
                                OpenFileFuncTh(fileturn);
                            }
                            else
                            {
                                if (fileIndex < itemList.Items.Count - 1 && !repeatFile)
                                {
                                    fileIndex++;
                                    volumeValue = trackBar1.Value;
                                    OpenFileFuncTh(fileIndex);
                                }
                                else if (repeatFile)
                                {
                                    OpenFileFuncTh(fileIndex);
                                }
                                else if (fileIndex == itemList.Items.Count - 1 && repeatList)
                                {
                                    fileIndex = 0;
                                    OpenFileFuncTh(fileIndex);
                                }
                                else
                                {
                                    fileIndex = 0;
                                    trackBar1.Value = 0;
                                    trackBar1.Enabled = false;
                                    trackBar2.Enabled = false;
                                    m_CurrentStatus = MediaStatus.Stopped;
                                    UpdateToolStrip();
                                }
                            }
                        }
                    }
                    catch (Exception explain)
                    {
                        break;
                    }
                }
            }
            base.WndProc(ref m);
        }
 public From1(ListBox items, ListBox filenames, int fileindex, bool doubleClick, Label filename)
 {
     InitializeComponent();
     this.itemList = items;
     this.filename = filename;
     this.listoffilenames = filenames;
     itemList.SelectedIndex = fileindex;
     try
     {
         m_obj_BasicAudio.Volume = volumeValue;
         m_CurrentStatus = MediaStatus.Running;
         m_obj_MediaControl.Run();
     }
     catch { }
     OpenFileFuncTh(itemList.SelectedIndex);
     searchform = new search(itemList, listoffilenames, fileindex, filename);
     searchform.Refresh();
 }
示例#37
0
        /// <summary>
        /// 清理资源
        /// </summary>
        public void Dispose()
        {
            if (m_objMediaControl != null)
                m_objMediaControl.Stop();

            m_currentStatus = MediaStatus.Stopped;

            if (m_objMediaEventEx != null)
                m_objMediaEventEx.SetNotifyWindow(0, 0, 0);

            if (m_objMediaControl != null) m_objMediaControl = null;
            if (m_objMediaPosition != null) m_objMediaPosition = null;
            if (m_objMediaEventEx != null) m_objMediaEventEx = null;
            if (m_objMediaEvent != null) m_objMediaEvent = null;
            if (m_objBasicAudio != null) m_objBasicAudio = null;

            //System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objFilterGraph);

            if (m_objFilterGraph != null) m_objFilterGraph = null;

            //System.Runtime.InteropServices.Marshal.ReleaseComObject
            //QuartzTypeLib.FilgraphManagerClass fm = new FilgraphManagerClass();
        }
        private void MediaPreviewer_Load(object sender, EventArgs e)
        {
            statusBarPanel1.Text = "Buffering !! Please  Wait";
                CleanUp();
                Console.WriteLine("download finished");
                m_objFilterGraph = new FilgraphManager();

                try
                {
                        m_objFilterGraph.RenderFile(fileName);
                }
                catch (Exception ex)
                {
                        return;
                }

                m_objBasicAudio = m_objFilterGraph as IBasicAudio;

                try
                {
                    m_objVideoWindow = m_objFilterGraph as IVideoWindow;
                    m_objVideoWindow.Owner = (int) panel1.Handle;
                    m_objVideoWindow.WindowStyle = WS_CHILD | WS_CLIPCHILDREN;
                    m_objVideoWindow.SetWindowPosition(panel1.ClientRectangle.Left,
                        panel1.ClientRectangle.Top,
                        panel1.ClientRectangle.Width,
                        panel1.ClientRectangle.Height);
                }
                catch (Exception)
                {
                    m_objVideoWindow = null;
                }

                m_objMediaEvent = m_objFilterGraph as IMediaEvent;

                m_objMediaEventEx = m_objFilterGraph as IMediaEventEx;
                m_objMediaEventEx.SetNotifyWindow((int) this.Handle,WM_GRAPHNOTIFY, 0);

                m_objMediaPosition = m_objFilterGraph as IMediaPosition;

                m_objMediaControl = m_objFilterGraph as IMediaControl;

                this.Text = "SMART MediaPreviewer";

                m_objMediaControl.Run();
                m_CurrentStatus = MediaStatus.Running;

                UpdateStatusBar();
                UpdateToolBar();
        }
 private void button6_Click(object sender, EventArgs e)
 {
     endpos = m_obj_MediaPosition.CurrentPosition;
     button6.Enabled = false;
     button7.Enabled = true;
     m_obj_MediaControl.Pause();
     m_CurrentStatus = MediaStatus.Paused;
     UpdateToolStrip();
 }
        public void OpenFileFunc(int filedex)
        {
            fileIndex = filedex;
            listoffilenames.SelectedIndex = fileIndex;
            object sender = new object();
            EventArgs er = new EventArgs();
            listoffilenames_SelectedIndexChanged(sender, er);
            ReLoad();
            itemList.Refresh();
            string openedfile = this.listoffilenames.Items[fileIndex].ToString();
            m_obj_FilterGraph = new FilgraphManager();
            try
            {
                m_obj_FilterGraph.RenderFile(openedfile);
            }
            catch (Exception)
            {
                MessageBox.Show("Please choose a valid file.\n Check the file path.\n File path could be changed.");
                return;
            }
            try
            {
                m_obj_BasicAudio = m_obj_FilterGraph as IBasicAudio;
                trackBar1.Value = volumeValue;
                m_obj_BasicAudio.Volume = trackBar1.Value;
                if (mute)
                {
                    volumeValue = -10000;
                    trackBar1.Value = volumeValue;
                    m_obj_BasicAudio.Volume = trackBar1.Value;
                }
            }
            catch { }

            try
            {
                if (!newPlayerIsCreated)
                {
                    playerform = new player(itemList, listoffilenames, fileIndex, filename);
                    newPlayerIsCreated = true;
                    playerform.Location = new Point(playerformLocationX, playerformLocationY);
                }
                m_obj_VideoWindow = m_obj_FilterGraph as IVideoWindow;
                m_obj_VideoWindow.Owner = (int)playerform.Handle;
                m_obj_VideoWindow.WindowStyle = WS_CHILD;
                videoplaying = true;
                m_obj_VideoWindow.SetWindowPosition(playerform.ClientRectangle.Left,
                    playerform.ClientRectangle.Top,
                    playerform.ClientRectangle.Right,
                    playerform.ClientRectangle.Bottom);
            }
            catch (Exception)
            {
                m_obj_VideoWindow = null;
                videoplaying = false;
            }

            if (videoplaying)
            {
                trackBar2.Enabled = true;
                trackBar1.Enabled = true;
                if (fullscreen)
                {
                    if (playerformactivatedonce == 0)
                        playerform.Show();
                    fullscreen = false;
                    fullscreenfunc();
                }
                else
                {
                    if (playerformactivatedonce == 0)
                        playerform.Show();
                }
                playerform.Activate();
            }
            else
            {
                trackBar2.Enabled = true;
                trackBar1.Enabled = true;
                playerformHeight = playerform.Height;
                playerformWidth = playerform.Width;
                playerformLocationX = playerform.Location.X;
                playerformLocationY = playerform.Location.Y;
                playerform.Dispose();
                newPlayerIsCreated = false;
            }
            running = true;
            m_obj_MediaEvent = m_obj_FilterGraph as IMediaEvent;
            m_obj_MediaEventEx = m_obj_FilterGraph as IMediaEventEx;
            m_obj_MediaEventEx.SetNotifyWindow((int)this.Handle, WM_GRAPHNOTIFY, 0);
            m_obj_MediaPosition = m_obj_FilterGraph as IMediaPosition;
            m_obj_MediaControl = m_obj_FilterGraph as IMediaControl;
            trackBar2.Maximum = (int)m_obj_MediaPosition.Duration;
            trackBar2.Minimum = 0;
            trackBar2.Value = (int)m_obj_MediaPosition.CurrentPosition;
            m_obj_MediaControl.Run();
            m_CurrentStatus = MediaStatus.Running;
            try
            {
                if (searchform != null)
                    searchform.listBox1.SelectedIndex = itemList.SelectedIndex;
            }
            catch { }
            if (isHidden)
                openModifyWindow();
            string[] newfilenamearray = listoffilenames.Items[fileIndex].ToString().Split('\\');
            string newfilename = newfilenamearray[newfilenamearray.Length - 1].ToString();
            if(newfilename.Length>30)
                filename.Text = newfilename.Substring(0,29) + "  ";
            else
                filename.Text = newfilename+ "  ";
            this.Refresh();
            UpdateToolStrip();
        }
        /// <summary>
        /// Retrieves the by status.
        /// </summary>
        /// <param name="status">The status.</param>
        /// <param name="userId">The user id.</param>
        /// <returns></returns>
        public List<Media> RetrieveByStatus(MediaStatus status, int userId)
        {
            List<Media> media = database.PopulateCollection("Media_RetrieveByStatus", new { status = status.ToString(), userId }, database.AutoPopulate<Media>);
            _hydrationService.Populate(media);

            return media;
        }
示例#42
0
 private void playMedia()
 {
     m_objMediaControl.Run();
     m_CurrentStatus = MediaStatus.Running;
 }
        public void toolStrip1_ItemClicked_1(object sender, ToolStripItemClickedEventArgs e)
        {
            clicked = toolStrip1.Items.IndexOf(e.ClickedItem);
            switch (clicked)
            {
                case 0:
                    if (m_CurrentStatus == MediaStatus.None)
                    {
                        OpenFileFunc();
                    }

                    if (m_CurrentStatus == MediaStatus.Stopped)
                    {
                        if (CompleteAndReOpen)
                        {
                            OpenFileFunc();
                            CompleteAndReOpen = false;
                        }
                        else
                        {
                            try
                            {
                                m_obj_MediaPosition.CurrentPosition = 0;
                                m_obj_MediaControl.Run();
                                m_CurrentStatus = MediaStatus.Running;
                            }
                            catch { }
                        }
                    }
                    else if (m_CurrentStatus == MediaStatus.Paused)
                    {
                        m_obj_MediaControl.Run();
                        m_CurrentStatus = MediaStatus.Running;
                    }
                    break;
                case 1:
                    m_obj_MediaControl.Pause();
                    m_CurrentStatus = MediaStatus.Paused;
                    break;
                case 2:
                    m_obj_MediaControl.Stop();
                    trackBar1.Value = 0;
                    m_obj_MediaPosition.CurrentPosition = 0;
                    m_CurrentStatus = MediaStatus.Stopped;
                    break;
                default:
                    MessageBox.Show("There is no file to play");
                    break;
            }
            UpdateToolStrip();
        }
        //Klavye kýsayollarý ile ilgili fonsiyonlar...
        public void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            if (!itemlistActive)
            {
                if (e.KeyData == Keys.Right && running)
                {
                    durationForward();
                }

                if (e.KeyData == Keys.Left && running)
                {
                    durationBackward();
                }

                if (e.KeyData == Keys.Up && running)
                {
                    if (running)
                    {
                        volumeUp();
                    }
                }
                if (e.KeyData == Keys.Down && running)
                {
                    if (running)
                    {
                        volumeDown();
                    }
                }

                if (e.KeyData == Keys.Escape)
                {
                    if (MessageBox.Show("Do ou really want to close CMP ?", "Program is shutting down", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        Close();
                }
                if (e.KeyData == Keys.M && running)
                {
                    if (mute)
                    {
                        m_obj_BasicAudio.Volume = trackBar1.Value;
                        volumeValue = m_obj_BasicAudio.Volume;
                        label4.Text = "Mute";
                        mute = false;
                    }
                    else
                    {
                        m_obj_BasicAudio.Volume = -10000;
                        volumeValue = m_obj_BasicAudio.Volume;
                        label4.Text = "Open";
                        mute = true;
                    }
                }

                if (e.KeyData == Keys.P || e.KeyData == Keys.Space)
                {
                    if (m_CurrentStatus == MediaStatus.Paused)
                    {
                        m_CurrentStatus = MediaStatus.Running;
                        m_obj_MediaControl.Run();
                        running = true;
                        UpdateToolStrip();
                    }
                    else if (m_CurrentStatus == MediaStatus.Running)
                    {
                        m_CurrentStatus = MediaStatus.Paused;
                        m_obj_MediaControl.Pause();
                        running = false;
                        UpdateToolStrip();
                    }
                }

                if (e.KeyData == Keys.F)
                {
                    fullscreenfunc();
                }
            }
        }
示例#45
0
        /// <summary>
        /// Reports to trakt.tv that an episode is being watched. Or that Episode(s) have been watched.
        /// </summary>
        /// <param name="episode">The episode being watched</param>
        /// <param name="status">Enum indicating whether an episode is being watched or scrobbled</param>
        /// <param name="traktUser">The user that's watching the episode</param>
        /// <param name="progressPercent"></param>
        /// <returns>A List of standard TraktResponse Data Contracts</returns>
        public async Task<List<TraktScrobbleResponse>> SendEpisodeStatusUpdateAsync(Episode episode, MediaStatus status, TraktUser traktUser, float progressPercent)
        {
            var episodeDatas = new List<TraktScrobbleEpisode>();

            if ((episode.IndexNumberEnd == null || episode.IndexNumberEnd == episode.IndexNumber) &&
                !string.IsNullOrEmpty(episode.GetProviderId(MetadataProviders.Tvdb)))
            {
                episodeDatas.Add(new TraktScrobbleEpisode
                {
                    AppDate = DateTime.Today.ToString("yyyy-MM-dd"),
                    AppVersion = _appHost.ApplicationVersion.ToString(),
                    Progress = progressPercent,
                    Episode = new TraktEpisode
                    {
                        Ids = new TraktEpisodeId
                        {
                            Tvdb = episode.GetProviderId(MetadataProviders.Tvdb).ConvertToInt()
                        },
                    }
                });
            }
            // It's a multi-episode file. Add all episodes
            else if (episode.IndexNumber.HasValue)
            {
                episodeDatas.AddRange(Enumerable.Range(episode.IndexNumber.Value,
                    ((episode.IndexNumberEnd ?? episode.IndexNumber).Value -
                     episode.IndexNumber.Value) + 1)
                    .Select(number => new TraktScrobbleEpisode
                    {
                        AppDate = DateTime.Today.ToString("yyyy-MM-dd"),
                        AppVersion = _appHost.ApplicationVersion.ToString(),
                        Progress = progressPercent,
                        Episode = new TraktEpisode
                        {
                            Season = episode.GetSeasonNumber(),
                            Number = number
                        },
                        Show = new TraktShow
                        {
                            Title = episode.Series.Name,
                            Year = episode.Series.ProductionYear,
                            Ids = new TraktShowId
                            {
                                Tvdb = episode.Series.GetProviderId(MetadataProviders.Tvdb).ConvertToInt(),
                                Imdb = episode.Series.GetProviderId(MetadataProviders.Imdb),
                                TvRage = episode.Series.GetProviderId(MetadataProviders.TvRage).ConvertToInt()
                            }
                        }
                    }).ToList());
            }

            string url;
            switch (status)
            {
                case MediaStatus.Watching:
                    url = TraktUris.ScrobbleStart;
                    break;
                case MediaStatus.Paused:
                    url = TraktUris.ScrobblePause;
                    break;
                default:
                    url = TraktUris.ScrobbleStop;
                    break;
            }
            var responses = new List<TraktScrobbleResponse>();
            foreach (var traktScrobbleEpisode in episodeDatas)
            {
                var response = await PostToTrakt(url, traktScrobbleEpisode, CancellationToken.None, traktUser);
                responses.Add(_jsonSerializer.DeserializeFromStream<TraktScrobbleResponse>(response));
            }
            return responses;
        }
 /// <summary>
 /// Updates the status.
 /// </summary>
 /// <param name="mediaId">The media id.</param>
 /// <param name="userId">The user id.</param>
 /// <param name="mediaStatus">The media status.</param>
 public void UpdateStatus(int mediaId, int userId, MediaStatus mediaStatus)
 {
     database.NonQuery("Media_UpdateStatus", new{mediaId,userId, status = mediaStatus.ToString()});
 }
        private void button7_Click(object sender, EventArgs e)
        {
            endpos = -1;
            startpos = -1;
            button1.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = true;
            button7.Enabled = false;
            if (m_CurrentStatus == MediaStatus.None)
            {
                OpenFileFunc();
            }

            if (m_CurrentStatus == MediaStatus.Stopped)
            {
                if (CompleteAndReOpen)
                {
                    OpenFileFunc();
                    CompleteAndReOpen = false;
                }
                else
                {
                    try
                    {
                        m_obj_MediaPosition.CurrentPosition = 0;
                        m_obj_MediaControl.Run();
                        m_CurrentStatus = MediaStatus.Running;
                    }
                    catch { }
                }
            }
            else if (m_CurrentStatus == MediaStatus.Paused)
            {
                m_obj_MediaControl.Run();
                m_CurrentStatus = MediaStatus.Running;
            }
            UpdateToolStrip();
        }
        //PLAYER ý yeniden yükleme iþlemi....
        public void ReLoad()
        {
            if (m_obj_MediaControl != null)
            {
                m_obj_MediaControl.Stop();
                m_CurrentStatus = MediaStatus.Stopped;
            }

            if (m_obj_MediaEventEx != null)
                m_obj_MediaEventEx.SetNotifyWindow(0, 0, 0);

            if (m_obj_VideoWindow != null)
            {
                m_obj_VideoWindow.Visible = 0;
                m_obj_VideoWindow.Owner = 0;
            }

            if (m_obj_MediaControl != null) m_obj_MediaControl = null;
            if (m_obj_MediaPosition != null) m_obj_MediaPosition = null;
            if (m_obj_MediaEventEx != null) m_obj_MediaEventEx = null;
            if (m_obj_MediaEvent != null) m_obj_MediaEvent = null;
            if (m_obj_VideoWindow != null) m_obj_VideoWindow = null;
            if (m_obj_BasicAudio != null) m_obj_BasicAudio = null;
            if (m_obj_FilterGraph != null) m_obj_FilterGraph = null;
            if (itemList.Items.Count == 0)
            {
                m_CurrentStatus = MediaStatus.None;
                trackBar2.Enabled = false;
                trackBar1.Enabled = false;
                if (videoplaying)
                    playerform.Dispose();
                videoplaying = false;
                m_CurrentStatus = MediaStatus.None;
            }
            UpdateToolStrip();
        }
        //PLAYER ý yeniden yükleme iþlemi....
        public void ReLoad()
        {
            if (m_obj_MediaControl != null)
            {
                m_obj_MediaControl.Stop();
                m_CurrentStatus = MediaStatus.Stopped;
            }

            if (m_obj_MediaEventEx != null)
                m_obj_MediaEventEx.SetNotifyWindow(0, 0, 0);

            if (m_obj_VideoWindow != null)
            {
                m_obj_VideoWindow.Visible = 0;
                m_obj_VideoWindow.Owner = 0;
            }

            if (m_obj_MediaControl != null) m_obj_MediaControl = null;
            if (m_obj_MediaPosition != null) m_obj_MediaPosition = null;
            if (m_obj_MediaEventEx != null) m_obj_MediaEventEx = null;
            if (m_obj_MediaEvent != null) m_obj_MediaEvent = null;
            if (m_obj_VideoWindow != null) m_obj_VideoWindow = null;
            if (m_obj_BasicAudio != null) m_obj_BasicAudio = null;
            if (m_obj_FilterGraph != null) m_obj_FilterGraph = null;
            UpdateToolStrip();
            timer1.Stop();
            running = false;
        }
示例#50
0
 	internal StateEventArgs (MediaStatus state)
 	{ this.state = state; }
示例#51
0
 private void stopMedia()
 {
     m_objMediaControl.Stop();
     m_objMediaPosition.CurrentPosition = 0;
     m_CurrentStatus = MediaStatus.Stopped;
 }
 /// <summary>
 /// Gets the list items.
 /// </summary>
 /// <param name="status">The status.</param>
 /// <returns></returns>
 public List<SelectListItem> GetListItems(MediaStatus status)
 {
     List<SelectListItem> items = PhotoHtmlHelper.PrivacyList();
     items.ForEach(o => o.Selected = o.Value.Equals(status.ToString(), StringComparison.InvariantCultureIgnoreCase));
     return items;
 }
 /// <summary>
 /// Updates the status.
 /// </summary>
 /// <param name="mediaId">The media id.</param>
 /// <param name="userId">The user id.</param>
 /// <param name="mediaStatus">The media status.</param>
 public void UpdateStatus(int[] mediaId, int userId, MediaStatus mediaStatus)
 {
     foreach (int id in mediaId)
        {
        UpdateStatus(id, userId, mediaStatus);
        }
 }
        public void OpenFileFunc()
        {
            ReLoad();
            string openedfile = textBox1.Text;
            m_obj_FilterGraph = new FilgraphManager();
            try
            {
                m_obj_FilterGraph.RenderFile(openedfile);
            }
            catch (Exception)
            {
                MessageBox.Show("Please choose a valid file.\n Check the file path.\n File path could be changed.");
                return;
            }
            try
            {
                m_obj_BasicAudio = m_obj_FilterGraph as QuartzTypeLib.IBasicAudio;
                m_obj_BasicAudio.Volume = trackBar1.Value;
            }
            catch { }
            try
            {
                m_obj_VideoWindow = m_obj_FilterGraph as QuartzTypeLib.IVideoWindow;
                m_obj_VideoWindow.Owner = (int)panel1.Handle;
                m_obj_VideoWindow.WindowStyle = WS_CHILD;
                m_obj_VideoWindow.SetWindowPosition(panel1.ClientRectangle.Left,
                    panel1.ClientRectangle.Top,
                    panel1.ClientRectangle.Right,
                    panel1.ClientRectangle.Bottom);
                videoplaying = true;
                timer1.Start();
            }
            catch (Exception)
            {
                m_obj_VideoWindow = null;
                videoplaying = false;
            }

            if (videoplaying)
            {
                trackBar1.Enabled = true;
                timer1.Start();
            }
            else
            {
                MessageBox.Show("Choose a Valid Video File");
            }
            running = true;
            m_obj_MediaEvent = m_obj_FilterGraph as QuartzTypeLib.IMediaEvent;
            m_obj_MediaEventEx = m_obj_FilterGraph as QuartzTypeLib.IMediaEventEx;
            m_obj_MediaEventEx.SetNotifyWindow((int)this.Handle, WM_GRAPHNOTIFY, 0);
            m_obj_MediaPosition = m_obj_FilterGraph as QuartzTypeLib.IMediaPosition;
            m_obj_MediaControl = m_obj_FilterGraph as QuartzTypeLib.IMediaControl;
            trackBar1.Maximum = (int)m_obj_MediaPosition.Duration;
            trackBar1.Minimum = 0;
            trackBar1.Value = (int)m_obj_MediaPosition.CurrentPosition;
            m_obj_MediaControl.Run();
            m_CurrentStatus = MediaStatus.Running;
            this.Refresh();
            UpdateToolStrip();
        }
示例#55
0
//        /// <summary>
//        /// Return information about the user, including ratings format
//        /// </summary>
//        /// <param name="traktUser"></param>
//        /// <returns></returns>
//        public async Task<AccountSettingsDataContract> GetUserAccount(TraktUser traktUser)
//        {
//            var data = new Dictionary<string, string> { { "username", traktUser.UserName }, { "password", traktUser.Password } };
//
//            var response =
//                await
//                _httpClient.Post(TraktUris.AccountSettings, data, Plugin.Instance.TraktResourcePool,
//                                                                     CancellationToken.None).ConfigureAwait(false);
//
//            return _jsonSerializer.DeserializeFromStream<AccountSettingsDataContract>(response);
//        }
//
//
//
//        /// <summary>
//        /// Return a list of the users friends
//        /// </summary>
//        /// <param name="traktUser">The user who's friends you want to retrieve</param>
//        /// <returns>A TraktFriendDataContract</returns>
//        public async Task<TraktFriendDataContract> GetUserFriends(TraktUser traktUser)
//        {
//            var data = new Dictionary<string, string> { { "username", traktUser.UserName }, { "password", traktUser.Password } };
//
//            var response = await _httpClient.Post(string.Format(TraktUris.Friends, traktUser.UserName), data, Plugin.Instance.TraktResourcePool,
//                                                                     CancellationToken.None).ConfigureAwait(false);
//
//            return _jsonSerializer.DeserializeFromStream<TraktFriendDataContract>(response);
//            
//        }
//
//
//
        /// <summary>
        /// Report to trakt.tv that a movie is being watched, or has been watched.
        /// </summary>
        /// <param name="movie">The movie being watched/scrobbled</param>
        /// <param name="mediaStatus">MediaStatus enum dictating whether item is being watched or scrobbled</param>
        /// <param name="traktUser">The user that watching the current movie</param>
        /// <param name="progressPercent"></param>
        /// <returns>A standard TraktResponse Data Contract</returns>
        public async Task<TraktScrobbleResponse> SendMovieStatusUpdateAsync(Movie movie, MediaStatus mediaStatus, TraktUser traktUser, float progressPercent)
        {
            var movieData = new TraktScrobbleMovie
            {
                AppDate = DateTime.Today.ToString("yyyy-MM-dd"),
                AppVersion = _appHost.ApplicationVersion.ToString(),
                Progress = progressPercent,
                Movie = new TraktMovie
                {
                    Title = movie.Name,
                    Year = movie.ProductionYear,
                    Ids = new TraktMovieId
                    {
                        Imdb = movie.GetProviderId(MetadataProviders.Imdb),
                        Tmdb = movie.GetProviderId(MetadataProviders.Tmdb).ConvertToInt()
                    }
                }
            };

            string url;
            switch (mediaStatus)
            {
                case MediaStatus.Watching:
                    url = TraktUris.ScrobbleStart;
                    break;
                case MediaStatus.Paused:
                    url = TraktUris.ScrobblePause;
                    break;
                default:
                    url = TraktUris.ScrobbleStop;
                    break;
            }

            var response = await PostToTrakt(url, movieData, CancellationToken.None, traktUser);
            return _jsonSerializer.DeserializeFromStream<TraktScrobbleResponse>(response);
        }
        private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
        {
            switch(toolBar1.Buttons.IndexOf(e.Button))
            {
                case 0: m_objMediaControl.Run();
                        m_CurrentStatus = MediaStatus.Running;
                        break;

                case 1: m_objMediaControl.Pause();
                        m_CurrentStatus = MediaStatus.Paused;
                        break;

                case 2: m_objMediaControl.Stop();
                        m_objMediaPosition.CurrentPosition = 0;
                        m_CurrentStatus = MediaStatus.Stopped;
                        break;
            }

            UpdateStatusBar();
            UpdateToolBar();
        }
示例#57
0
        private void openMedia()
        {
            openFileDialog1.Filter = "Media Files|*.mpg;*.avi;*.wma;*.mov;*.wav;*.mp2;*.mp3|All Files|*.*";
            if (DialogResult.OK == openFileDialog1.ShowDialog()) {
                CleanUp();
                m_objFilterGraph = new FilgraphManager();
                m_objFilterGraph.RenderFile(openFileDialog1.FileName);
                m_objBasicAudio = m_objFilterGraph as IBasicAudio;

                try
                {
                    m_objVideoWindow = m_objFilterGraph as IVideoWindow;
                    m_objVideoWindow.Owner = (int)panel1.Handle;
                    m_objVideoWindow.WindowStyle = WS_CHILD | WS_CLIPCHILDREN;
                    m_objVideoWindow.SetWindowPosition(panel1.ClientRectangle.Left,
                        panel1.ClientRectangle.Top,
                        panel1.ClientRectangle.Width,
                        panel1.ClientRectangle.Height);
                }
                catch(Exception) {
                    m_objVideoWindow = null;
                }

                m_objMediaEvent = m_objFilterGraph as IMediaEvent;
                m_objMediaEventEx = m_objFilterGraph as IMediaEventEx;
                m_objMediaEventEx.SetNotifyWindow((int) this.Handle, WM_GRAPHNOTIFY, 0);
                m_objMediaPosition = m_objFilterGraph as IMediaPosition;
                m_objMediaControl = m_objFilterGraph as IMediaControl;
                this.Text = "Whistle- " + openFileDialog1.FileName + "]";
                m_objMediaControl.Run();
                m_CurrentStatus = MediaStatus.Running;

            }
        }
示例#58
0
 private void pauseMedia()
 {
     m_objMediaControl.Pause();
     m_CurrentStatus = MediaStatus.Paused;
 }
        /// <summary>
        /// Report Media status to JS
        /// </summary>
        public void ReportStatus(MediaStatus status)
        {
            PluginResult result = new PluginResult(PluginResult.Status.OK, new MediaChannelStatusAction() { Status = status });
            result.KeepCallback = true;

            DispatchCommandResult(result, messageChannelCallbackId);
        }
        //Medya nýn çalmasý için gerekli kýsým....
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_GRAPHNOTIFY)
            {
                int lEventCode;
                int lParam1, lParam2;
                while (true)
                {
                    try
                    {
                        m_obj_MediaEventEx.GetEvent(out lEventCode,
                            out lParam1,
                            out lParam2,
                            0);
                        m_obj_MediaEventEx.FreeEventParams(lEventCode, lParam1, lParam2);

                        if (lEventCode == EC_COMPLETE)
                        {
                            m_obj_MediaControl.Stop();
                            m_CurrentStatus = MediaStatus.Stopped;
                            timer1.Stop();
                            UpdateToolStrip();
                        }
                    }
                    catch (Exception explain)
                    {
                        break;
                    }
                }
            }
            base.WndProc(ref m);
        }