コード例 #1
0
        public static IVideoPlayer getVideoPlayer(string videoPlayerName, string videoFile, Panel videoOwner, Panel stepsOwner, VideoUserOptions pVideoUserOptions)
        {
            if (videoFile.Contains(".mp3"))
            {
                if (m_Mp3Player == null)
                    m_Mp3Player = new MP3VideoWrapper(videoFile, videoOwner);
                return m_Mp3Player;
            }

            if (videoPlayerName.CompareTo(ProjectConstants.DIRECTX_VIDEO_PLAYER_NAME) == 0)
            {
                if (m_DirectXPlayer == null)
                    m_DirectXPlayer = new DirectXVideoWrapper(videoFile, videoOwner);
                return m_DirectXPlayer;
            }
            else if (videoPlayerName.CompareTo(ProjectConstants.DIRECT_SHOW_VIDEO_PLAYER_NAME) == 0)
            {
                return new DirectShowVideoWrapper(videoFile, videoOwner, stepsOwner, pVideoUserOptions);
            }
            else if (videoPlayerName.CompareTo(ProjectConstants.DUMMY_VIDEO_PLAYER_NAME) == 0)
            {
                return new DummyVideoWrapper();
            }

            throw new VideoPlayerNotFoundException();
        }
コード例 #2
0
ファイル: MainReceive.cs プロジェクト: Pzkgw/Camera-Support
        public MainReceive(Form1 fork)
        {
            gs = new Class1(); // inainte de MainReceive::_mFactory->Init()



            //gs.GetBase().StateChanged += MainReceive_StateChanged;

            //++si;
            //gs.GetBase().TogglePlay(true, s[si]);

            form = fork;
            //g = form.panel1.CreateGraphics();

            _mFactory = new MediaPlayerFactory(opt,//new string[] { },
                                               @"C:\Program Files (x86)\VideoLAN\VLC", true, new CLogger());

            _mPlayer = _mFactory.CreatePlayer <IVideoPlayer>();
            _mPlayer.WindowHandle = form.panel1.Handle;

            // true: 00, 01
            // false:11, 10
            PlayStart(s[1]);
            //Thread.Sleep(5000);
            PlayStop(); // --> ev # s

            PlayStart(s[1]);


            //_mPlayer.CurrentMedia.Events.StateChanged += Events_StateChanged1;
        }
コード例 #3
0
        private static void OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            IVideoPlayer value = (IVideoPlayer)e.NewValue;
            PlayerTimelineBarUserControl thisControl = d as PlayerTimelineBarUserControl;

            thisControl.ExternalPlayerBinded();
        }
コード例 #4
0
ファイル: EditorLogic.cs プロジェクト: uche40/VidkaEditor
        public EditorLogic(IVideoEditor editor, IVideoPlayer videoPlayer)
        {
            this.editor = editor;
            this.videoPlayer = videoPlayer;
            Proj = new VidkaProj();
            Dimdim = new ProjectDimensions(Proj);
            UiObjects = new VidkaUiStateObjects();
            previewLauncher = new PreviewThreadLauncher(videoPlayer, this);
            ioOps = new VidkaIO();
            Proj_forOriginalPlayback = new VidkaProj();
            IsFileChanged = false;

            EditOpsAll = new EditOperationAbstract[] {
                new EditOperationTrimVideo(this, UiObjects, Dimdim, editor, videoPlayer, TrimDirection.Left, ProjectDimensionsTimelineType.Main),
                new EditOperationTrimVideo(this, UiObjects, Dimdim, editor, videoPlayer, TrimDirection.Right, ProjectDimensionsTimelineType.Main),
                new EditOperationTrimVideo(this, UiObjects, Dimdim, editor, videoPlayer, TrimDirection.Left, ProjectDimensionsTimelineType.Original),
                new EditOperationTrimVideo(this, UiObjects, Dimdim, editor, videoPlayer, TrimDirection.Right, ProjectDimensionsTimelineType.Original),
                new EditOperationMoveVideo(this, UiObjects, Dimdim, editor, videoPlayer),
                new EditOperationSelectOriginalSegment(this, UiObjects, Dimdim, editor, videoPlayer),
            };
            setProjToAllEditOps(Proj);

            FileMapping = Settings.Default.DataNearProject
                ? (VidkaFileMapping)new VidkaFileMapping_proj()
                : (VidkaFileMapping)new VidkaFileMapping_resource();
            dragAndDropMan = new DragAndDropManager(editor, Proj, FileMapping);
            dragAndDropMan.MetaReadyForDraggy += dragAndDropMan_MetaReadyForDraggy;
            dragAndDropMan.MetaReadyForOutstandingVideo += dragAndDropMan_MetaReadyForOutstandingVideo;
            dragAndDropMan.MetaReadyForOutstandingAudio += dragAndDropMan_MetaReadyForOutstandingAudio;
            dragAndDropMan.ThumbOrWaveReady += dragAndDropMan_ThumbOrWaveReady;
        }
コード例 #5
0
ファイル: MainForm.cs プロジェクト: pacificIT/MediaPortal-2
        /// <summary>
        /// Updates the local state corresponding to the current video player, given in parameter <paramref name="videoPlayer"/>.
        /// This method will check if the given player is suspended (i.e. it is paused). It will also update the thread state so that the system
        /// won't shut down while playing a video.
        /// </summary>
        /// <param name="videoPlayer">Player to check.</param>
        private void UpdateVideoPlayerState(IVideoPlayer videoPlayer)
        {
            IMediaPlaybackControl player = videoPlayer as IMediaPlaybackControl;

            _videoPlayerSuspended = player == null || player.IsPaused;
            PlayerSuspendLevel    = videoPlayer == null ? SuspendLevel.None : SuspendLevel.DisplayRequired;
        }
コード例 #6
0
        public bool SetAudioStream(AudioStreamDescriptor stream)
        {
            IPlayerManager playerManager = ServiceRegistration.Get <IPlayerManager>();
            IPlayerContext playerContext = stream.PlayerContext;

            lock (playerManager.SyncObj)
            {
                if (!playerContext.IsActive)
                {
                    return(false);
                }
                IPlayer player = playerContext.CurrentPlayer;
                if (player == null || player.Name != stream.PlayerName)
                {
                    return(false);
                }
                IVideoPlayer videoPlayer = player as IVideoPlayer;
                if (videoPlayer != null)
                {
                    videoPlayer.SetAudioStream(stream.AudioStreamName);
                }
                playerManager.AudioSlotController = playerContext.PlayerSlotController;
                return(true);
            }
        }
コード例 #7
0
        public MainWindow()
        {
            InitializeComponent();
            this.Topmost = true;

            //MessageBox.Show("1");
            try
            {
                m_factory = new MediaPlayerFactory(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }

            m_player = m_factory.CreatePlayer <IVideoPlayer>();
            m_videoImage.Initialize(m_player.CustomRendererEx);

            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);

            slider2.Value = m_player.Volume;

            DeleteFile.Click    += DeleteFile_Click;
            DeleteAllFile.Click += DeleteAllFile_Click;
            //MyListView.MouseDoubleClick += MyListView_MouseDoubleClick;
            MyListView.PreviewMouseLeftButtonUp += MyListView_PreviewMouseLeftButtonUp;

            UpdateListView();
        }
コード例 #8
0
ファイル: VideoHandler.cs プロジェクト: RickDB/jmmclient
        public void PlayAllUnwatchedEpisodes(int animeSeriesID)
        {
            try
            {
                IVideoPlayer player = ResolvePlayer();
                if (player == null)
                {
                    throw new Exception("Please configure a Video Player");
                }
                List <JMMServerBinary.Contract_AnimeEpisode> rawEps = JMMServerVM.Instance.clientBinaryHTTP.GetAllUnwatchedEpisodes(animeSeriesID,
                                                                                                                                    JMMServerVM.Instance.CurrentUser.JMMUserID.Value);

                List <AnimeEpisodeVM> episodes = new List <AnimeEpisodeVM>();
                foreach (JMMServerBinary.Contract_AnimeEpisode raw in rawEps)
                {
                    episodes.Add(new AnimeEpisodeVM(raw));
                }
                string plsPath = GenerateTemporaryPlayList(episodes);
                if (!string.IsNullOrEmpty(plsPath))
                {
                    player.Play(new VideoInfo {
                        Uri = plsPath, IsPlaylist = true
                    });
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex.Message, ex);
            }
        }
コード例 #9
0
        //this is responsible for loading the video.

        //for now, no remote control.
        //if we ever added it, then will be here as well.


        public VideoMainLoaderViewModel(V selectedItem, IVideoPlayer player)
        {
            SelectedItem = selectedItem;
            Player       = player;
            VideoGlobal.CurrentVideoVM = this;
            //well see what else is needed
        }
コード例 #10
0
        public TaskController(ILogger logger, IMediaFactory mediaFactory, IVideoPlayer videoPlayer, SpiderFactory spiderFactory, IMetadataController metadataController, IMarqueeRepository marqueeRepository, IMetadataRepository mediaItemRepository)
        {
            if (logger == null)
                throw new ArgumentNullException("logger");
            if (mediaFactory == null)
                throw new ArgumentNullException("mediaFactory");
            if (videoPlayer == null)
                throw new ArgumentNullException("videoPlayer");
            if (spiderFactory == null)
                throw new ArgumentNullException("spiderFactory");
            if (metadataController == null)
                throw new ArgumentNullException("metadataController");
            if (marqueeRepository == null)
                throw new ArgumentNullException("marqueeRepository");
            if (mediaItemRepository == null)
                throw new ArgumentNullException("mediaItemRepository");

            this.logger = logger;
            this.mediaFactory = mediaFactory;
            this.videoPlayer = videoPlayer;
            this.spiderFactory = spiderFactory;
            this.metadataController = metadataController;
            this.marqueeRepository = marqueeRepository;
            this.mediaItemRepository = mediaItemRepository;
            this.audioStreamFactory = new AudioStreamFactory();
        }
コード例 #11
0
        private void HandlePlayerChange()
        {
            IVideoPlayer player = GetPlayerToSynchronize();

            FireUpdateVideoPlayerState(player);
            FireSynchronizeToVideoPlayerFramerate(player);
        }
コード例 #12
0
ファイル: MainForm.cs プロジェクト: nikkilocke/MediaPortal-2
 private void SynchronizeToVideoPlayerFramerate(IVideoPlayer videoPlayer)
 {
     lock (_screenManager.SyncObj)
     {
         if (videoPlayer == _synchronizedVideoPlayer)
         {
             return;
         }
         ISharpDXVideoPlayer oldPlayer = _synchronizedVideoPlayer;
         _synchronizedVideoPlayer = null;
         if (oldPlayer != null)
         {
             oldPlayer.SetRenderDelegate(null);
         }
         ISharpDXVideoPlayer newPlayer = videoPlayer as ISharpDXVideoPlayer;
         if (newPlayer == null)
         {
             ServiceRegistration.Get <ILogger>().Info("SkinEngine MainForm: SynchronizeToVideoPlayerFramerate: Restore default rendering, no new Player!");
             return;
         }
         if (newPlayer.SetRenderDelegate(VideoPlayerRender))
         {
             _synchronizedVideoPlayer = newPlayer;
             ServiceRegistration.Get <ILogger>().Info("SkinEngine MainForm: Synchronized render framerate to video player '{0}'", newPlayer);
         }
         else
         {
             ServiceRegistration.Get <ILogger>().Info("SkinEngine MainForm: Video player '{0}' doesn't provide render thread synchronization, using default framerate", newPlayer);
         }
     }
 }
コード例 #13
0
        EnumTelevisionHoliday _currentHoliday; //this is important because it may load something else.

        public TelevisionRerunShellViewModel(IVideoPlayer player, ITelevisionShellLogic logic, ITelevisionLoaderLogic loader)
        {
            DisplayName = "Simple Reruns Version 6";
            _player     = player;
            _logic      = logic;
            _loader     = loader;
        }
コード例 #14
0
ファイル: VLCStream.cs プロジェクト: uzbekdev1/main
        private void DisposePlayer()
        {
            if (_mFactory == null)
            {
                return;
            }
            try
            {
                _mPlayer.Dispose();
            }
            catch { }
            try
            {
                _mFactory.Dispose();
            }
            catch { }
            try
            {
                _mMedia.Dispose();
            }
            catch { }

            _mPlayer  = null;
            _mFactory = null;
            _mMedia   = null;
        }
コード例 #15
0
        public PlayerVlcWpf()
        {
            InitializeComponent();


            timer          = new DispatcherTimer();
            timer.Interval = TimeSpan.FromSeconds(1);
            timer.Tick    += new EventHandler(timer_Tick);

            InitializePropertyValues();


            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();

            p.BackColor = System.Drawing.Color.Transparent;
            windowsFormsHost1.Opacity = 0.5;
            windowsFormsHost1.Child   = p;



            m_factory = new MediaPlayerFactory(true);
            m_player  = m_factory.CreatePlayer <IVideoPlayer>();
            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);


            m_player.WindowHandle = p.Handle;
        }
コード例 #16
0
ファイル: VideoPlayer.cs プロジェクト: ewin66/TRapperProject
        public static IVideoPlayer getVideoPlayer(string videoPlayerName, string videoFile, Panel videoOwner, Panel stepsOwner, VideoUserOptions pVideoUserOptions)
        {
            if (videoFile.Contains(".mp3"))
            {
                if (m_Mp3Player == null)
                {
                    m_Mp3Player = new MP3VideoWrapper(videoFile, videoOwner);
                }
                return(m_Mp3Player);
            }

            if (videoPlayerName.CompareTo(ProjectConstants.DIRECTX_VIDEO_PLAYER_NAME) == 0)
            {
                if (m_DirectXPlayer == null)
                {
                    m_DirectXPlayer = new DirectXVideoWrapper(videoFile, videoOwner);
                }
                return(m_DirectXPlayer);
            }
            else if (videoPlayerName.CompareTo(ProjectConstants.DIRECT_SHOW_VIDEO_PLAYER_NAME) == 0)
            {
                return(new DirectShowVideoWrapper(videoFile, videoOwner, stepsOwner, pVideoUserOptions));
            }
            else if (videoPlayerName.CompareTo(ProjectConstants.DUMMY_VIDEO_PLAYER_NAME) == 0)
            {
                return(new DummyVideoWrapper());
            }

            throw new VideoPlayerNotFoundException();
        }
コード例 #17
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            try
            {
                m_factory = new MediaPlayerFactory(true);
                m_sourcePlayer = m_factory.CreatePlayer<IVideoPlayer>();
                m_sourcePlayer.Mute = false;
                m_sourcePlayer.Volume = 100;

                m_renderPlayer = m_factory.CreatePlayer<IVideoPlayer>();
                m_renderPlayer.WindowHandle = panel1.Handle;

                m_inputMedia = m_factory.CreateMedia<ICompositeMemoryInputMedia>(MediaStrings.IMEM);
                SetupVideoSourceOutput(m_sourcePlayer.CustomRendererEx);
                SetupAudioSourceOutput(m_sourcePlayer.CustomAudioRenderer);

                Predicate<LogMessage> filter = p => p.Level == LogLevel.Warning || p.Level == LogLevel.Error;
                m_factory.SubscribeToLogMessages(log => Console.WriteLine(log.Message), filter);

                Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime;
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #18
0
        public void PlayAllUnwatchedEpisodes(int animeSeriesID)
        {
            try
            {
                IVideoPlayer player = ResolvePlayer();
                if (player == null)
                {
                    throw new Exception("Please configure a Video Player");
                }
                List <VM_AnimeEpisode_User> episodes = VM_ShokoServer.Instance.ShokoServices.GetAllUnwatchedEpisodes(animeSeriesID,
                                                                                                                     VM_ShokoServer.Instance.CurrentUser.JMMUserID).CastList <VM_AnimeEpisode_User>();

                string plsPath = GenerateTemporaryPlayList(episodes);
                if (!string.IsNullOrEmpty(plsPath))
                {
                    player.Play(new VideoInfo {
                        Uri = plsPath, IsPlaylist = true
                    });
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex.Message, ex);
            }
        }
コード例 #19
0
 protected void UpdatePlayerChooseEffectMenu()
 {
     if (_playerChooseEffectMenu.Count == 0)
     {
         IGeometryManager geometryManager    = ServiceRegistration.Get <IGeometryManager>();
         string           standardEffectFile = geometryManager.StandardEffectFile;
         IPlayerContext   pc = _playerEffectMenuPlayerContext;
         if (pc == null || !pc.IsActive)
         {
             LeaveChooseEffectWorkflow();
             return;
         }
         string effectStr = LocalizationHelper.CreateResourceString(Consts.RES_CHOOSE_PLAYER_EFFECT).Evaluate();
         IList <IPlayerContext> videoPCs = GetVideoPlayerContexts();
         _playerChooseEffectHeader = videoPCs.Count > 1 ?
                                     string.Format("{0} ({1})", effectStr, GetNameForPlayerContext(pc, pc.IsPrimaryPlayerContext ? 0 : 1))
   : effectStr;
         IVideoPlayer videoPlayer = pc.CurrentPlayer as IVideoPlayer;
         foreach (KeyValuePair <string, string> nameToEffect in geometryManager.AvailableEffects)
         {
             string   file         = nameToEffect.Key;
             string   vpEffectFile = videoPlayer == null ? null : videoPlayer.EffectOverride ?? standardEffectFile;
             ListItem item         = new ListItem(Consts.KEY_NAME, nameToEffect.Value)
             {
                 Command  = new MethodDelegateCommand(() => SetEffect(_playerEffectMenuPlayerContext, file)),
                 Selected = file == vpEffectFile,
             };
             item.AdditionalProperties[Consts.KEY_NAVIGATION_MODE] = NavigationMode.ExitPCWorkflow;
             _playerChooseEffectMenu.Add(item);
         }
     }
 }
コード例 #20
0
ファイル: StationForm.cs プロジェクト: neurotechw/VEEGstation
        void PlayPreviewFile(string FileName)
        {
            try
            {
                _player.Stop();
                _player.Dispose();
            }
            catch { }
            try
            {
                _media.Dispose();
            }
            catch { }

            IMediaPlayerFactory factory = new MediaPlayerFactory();

            _media  = factory.CreateMedia <IMediaFromFile>(FileName);
            _player = factory.CreatePlayer <IVideoPlayer>();
            _player.WindowHandle = picturePreview.Handle;
            _player.AspectRatio  = AspectRatioMode.Mode2; // fill?
            _player.Open(_media);
            _player.Events.MediaEnded    += new EventHandler(OnMediaEnded);
            _player.Events.PlayerStopped += new EventHandler(OnPlayerStopped);
            _player.Play();
        }
コード例 #21
0
        private void PlaySourceImpl()
        {
            string sourcePath = this.mainViewModel.SourcePath;

            try
            {
                if (FileUtilities.IsDirectory(sourcePath))
                {
                    // Path is a directory
                    IVideoPlayer player = Players.Installed.FirstOrDefault(p => p.Id == Config.PreferredPlayer);
                    if (player == null)
                    {
                        player = Players.Installed[0];
                    }

                    player.PlayTitle(sourcePath, this.mainViewModel.SelectedTitle.Index);
                }
                else
                {
                    // Path is a file
                    FileService.Instance.PlayVideo(sourcePath);
                }
            }
            catch (IOException)
            {
                this.RaisePropertyChanged(nameof(this.PlayAvailable));
            }
        }
コード例 #22
0
ファイル: VlcMediaPlayer.cs プロジェクト: wgnf/NWaveform
        public VlcMediaPlayer(IMediaPlayerFactory factory = null, AudioEndpointVolume audioEndpointVolume = null)
        {
            // create the player using the injected factory
            _factory             = factory ?? new MediaPlayerFactory();
            _player              = _factory.CreatePlayer <IVideoPlayer>();
            _audioEndpointVolume = audioEndpointVolume;

            // set default values
            OpenTimeOut    = TimeSpan.FromSeconds(10);
            Async          = true;
            Error          = AudioError.NoError;
            AudioSelection = AudioSelection.Empty;

            // cached event handler to avoid leaks during add and remove
            _durationChanged = (s, e) => OnDurationChanged(e.NewDuration);
            _parsedChanged   = (s, e) => OnParsedChanged();

            // hook events
            _player.Events.MediaChanged           += (s, e) => OnMediaChanged();
            _player.Events.MediaEnded             += (s, e) => OnMediaEnded();
            _player.Events.PlayerEncounteredError += (s, e) => OnEncounteredError();
            _player.Events.PlayerLengthChanged    += (s, e) => OnDurationChanged(e.NewLength);
            _player.Events.PlayerPaused           += (s, e) => OnPaused();
            _player.Events.PlayerPlaying          += (s, e) => OnPlaying();
            _player.Events.PlayerPositionChanged  += (s, e) => OnPositionChanged(e.NewPosition * Duration);
            _player.Events.PlayerPositionChanged  += (s, e) => OnPositionChangedLoop(e.NewPosition);
            _player.Events.PlayerStopped          += (s, e) => OnStopped();
        }
コード例 #23
0
        public Window1()
        {
            InitializeComponent();

            this.KeyDown += this.KeyPress;

            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();
            p.BackColor = System.Drawing.Color.Black;
            windowsFormsHost1.Child = p;

            m_factory = new MediaPlayerFactory(true);
            m_player = m_factory.CreatePlayer<IVideoPlayer>();

            this.DataContext = m_player;

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = p.Handle;
            slider2.Value = m_player.Volume;

            this.show = "Futurama";
            this.loadManager();
            this.playEpisode();
        }
コード例 #24
0
        public void Initialize(ILogger logger, ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataController mediaItemController, ITaskController taskController, ITagController tagController, IVideoPlayer videoPlayer)
        {
            if (logger == null)
                throw new ArgumentNullException("logger");
            if (securityContext == null)
                throw new ArgumentNullException("securityContext");
            if (mediaFactory == null)
                throw new ArgumentNullException("mediaFactory");
            if (mediaItemController == null)
                throw new ArgumentNullException("mediaItemController");
            if (taskController == null)
                throw new ArgumentNullException("taskController");
            if (tagController == null)
                throw new ArgumentNullException("tagController");
            if (videoPlayer == null)
                throw new ArgumentNullException("videoPlayer");

            this.logger = logger;
            this.securityContext = securityContext;
            this.mediaFactory = mediaFactory;
            this.taskController = taskController;
            this.mediaItemController = mediaItemController;
            this.tagController = tagController;
            this.videoPlayer = videoPlayer;
        }
コード例 #25
0
ファイル: StationForm.cs プロジェクト: neurotechw/VEEGstation
        private void btnPreview_Click(object sender, EventArgs e)
        {
            var selItems = lvVideoFiles.SelectedIndices;

            if (selItems == null)
            {
                return;
            }
            int sel = selItems[0];

            _player.Stop();
            _media.Dispose();

            VideoFileInfo       vfi     = _videoFiles[sel];
            IMediaPlayerFactory factory = new MediaPlayerFactory();

            _media  = factory.CreateMedia <IMediaFromFile>(vfi.FileFullName);
            _player = factory.CreatePlayer <IVideoPlayer>();
            _player.WindowHandle = picturePreview.Handle;
            _player.AspectRatio  = AspectRatioMode.Mode2;
            _player.Open(_media);
            _player.Events.MediaEnded    += new EventHandler(OnMediaEnded);
            _player.Events.PlayerStopped += new EventHandler(OnPlayerStopped);
            _player.Play();
        }
コード例 #26
0
 protected void UpdatePlayerChooseGeometryMenu()
 {
     if (_playerChooseGeometryMenu.Count == 0)
     {
         IGeometryManager geometryManager = ServiceRegistration.Get <IGeometryManager>();
         IGeometry        defaultGeometry = geometryManager.DefaultVideoGeometry;
         IPlayerContext   pc = _playerGeometryMenuPlayerContext;
         if (pc == null || !pc.IsActive)
         {
             LeaveChooseGeometryWorkflow();
             return;
         }
         string geometryStr = LocalizationHelper.CreateResourceString(Consts.RES_CHOOSE_PLAYER_GEOMETRY).Evaluate();
         IList <IPlayerContext> videoPCs = GetVideoPlayerContexts();
         _playerChooseGeometryHeader = videoPCs.Count > 1 ?
                                       string.Format("{0} ({1})", geometryStr, GetNameForPlayerContext(pc, pc.IsPrimaryPlayerContext ? 0 : 1))
   : geometryStr;
         IVideoPlayer videoPlayer = pc.CurrentPlayer as IVideoPlayer;
         foreach (KeyValuePair <string, IGeometry> nameToGeometry in geometryManager.AvailableGeometries)
         {
             IGeometry geometry   = nameToGeometry.Value;
             IGeometry vpGeometry = videoPlayer == null ? null : videoPlayer.GeometryOverride ?? defaultGeometry;
             ListItem  item       = new ListItem(Consts.KEY_NAME, nameToGeometry.Key)
             {
                 Command  = new MethodDelegateCommand(() => SetGeometry(_playerGeometryMenuPlayerContext, geometry)),
                 Selected = vpGeometry == geometry,
             };
             item.AdditionalProperties[Consts.KEY_NAVIGATION_MODE] = NavigationMode.ExitPCWorkflow;
             _playerChooseGeometryMenu.Add(item);
         }
     }
 }
コード例 #27
0
        protected void Update()
        {
            IPlayerContextManager playerContextManager = ServiceRegistration.Get <IPlayerContextManager>();
            IWorkflowManager      workflowManager      = ServiceRegistration.Get <IWorkflowManager>();
            IPlayerContext        pcPrimary            = playerContextManager.PrimaryPlayerContext;
            IPlayer      primaryPlayer = pcPrimary == null ? null : pcPrimary.CurrentPlayer;
            IImagePlayer pp            = primaryPlayer as IImagePlayer;
            IVideoPlayer vp            = primaryPlayer as IVideoPlayer;
            IAudioPlayer ap            = primaryPlayer as IAudioPlayer;
            bool         visible       = (pp != null || vp != null || ap != null) &&
                                         !workflowManager.IsStateContainedInNavigationStack(pcPrimary.FullscreenContentWorkflowStateId);
            IResourceString displayTitleRes;

            if (ap != null)
            {
                displayTitleRes = LocalizationHelper.CreateResourceString(Consts.RES_AUDIO_VISUALIZATION);
            }
            else if (vp != null)
            {
                displayTitleRes = LocalizationHelper.CreateStaticString(
                    LocalizationHelper.CreateResourceString(Consts.RES_FULLSCREEN_VIDEO).Evaluate(vp.Name));
            }
            else
            {
                displayTitleRes = LocalizationHelper.CreateResourceString(Consts.RES_FULLSCREEN_IMAGE);
            }
            lock (_syncObj)
            {
                _isVisible            = visible;
                _displayTitleResource = displayTitleRes;
            }
            FireStateChanged();
        }
コード例 #28
0
 //current state
 public PreviewThreadLauncher(IVideoPlayer player, ISomeCommonEditorOperations editor)
 {
     this.player = player;
     this.editor = editor;
     mutex = new PreviewThreadMutex();
     ticker = new Timer();
     ticker.Tick += PlaybackTickerFunc;
 }
コード例 #29
0
        //current state


        public PreviewThreadLauncher(IVideoPlayer player, ISomeCommonEditorOperations editor)
        {
            this.player  = player;
            this.editor  = editor;
            mutex        = new PreviewThreadMutex();
            ticker       = new Timer();
            ticker.Tick += PlaybackTickerFunc;
        }
コード例 #30
0
        public VLCVideoPlayer()
        {
            InitializeComponent();

            m_factory = new MediaPlayerFactory(true);
            m_player  = m_factory.CreatePlayer <IVideoPlayer>();
            Initialize(m_player.CustomRendererEx);
        }
        protected override IVideoPlayer GetPlayerToSynchronize()
        {
            IPlayerContextManager playerContextManager = ServiceRegistration.Get <IPlayerContextManager>();
            IPlayerSlotController backgroundPsc        = VideoBackgroundModel.GetCurrentInstance().PlayerSlotController;
            IVideoPlayer          player = backgroundPsc != null ? backgroundPsc.CurrentPlayer as IVideoPlayer : null;

            return(playerContextManager[PlayerContextIndex.PRIMARY] as IVideoPlayer ?? player);
        }
コード例 #32
0
 public void SetVideoPlayer(IVideoPlayer videoPlayer)
 {
     _videoPlayer         = videoPlayer;
     _videoPlayer.Opened += (s, args) =>
     {
         UpdateFromModel(_videoPlayer.Content);
     };
 }
コード例 #33
0
 private void SwitchVideoPlayback(PlaybackStateEventArgs eventArgs, IVideoPlayer videoPlayer)
 {
     EventAggregator.Publish(new StopMessage());
     PlayerManagementService.DefaultVideoPlayer = videoPlayer;
     EventAggregator.Publish(new PlayMessage {
         Options = eventArgs
     });
 }
コード例 #34
0
 public MouseOpLinkVideoAudio(IVidkaOpContext iEditor,
                              VidkaUiStateObjects uiObjects,
                              ProjectDimensions dimdim,
                              IVideoShitbox editor,
                              IVideoPlayer videoPlayer)
     : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
 {
 }
コード例 #35
0
ファイル: VideoPlayer.cs プロジェクト: smartwell/video_detect
        //VideoDetectForm videoDetectform = new VideoDetectForm();

        public VideoPlayer()
        {
            InitializeComponent();

            m_factory             = new MediaPlayerFactory();
            m_player              = m_factory.CreatePlayer <IVideoPlayer>();
            m_player.WindowHandle = panel1.Handle;
        }
コード例 #36
0
        public MouseOpLinkVideoAudio(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
        }
コード例 #37
0
        protected void FireUpdateVideoPlayerState(IVideoPlayer player)
        {
            UpdateVideoPlayerStateDlgt dlgt = UpdateVideoPlayerState;

            if (dlgt != null)
            {
                dlgt(player);
            }
        }
コード例 #38
0
 //current state
 public PreviewThreadLauncher(IVideoPlayer player, IAudioPlayer playerAudio, IVidkaOpContext editor)
 {
     this.player = player;
     this.playerAudio = playerAudio;
     this.editor = editor;
     mutex = new PreviewThreadMutex();
     ticker = new Timer();
     ticker.Tick += PlaybackTickerFunc;
 }
コード例 #39
0
        public VidkaFastPreviewPlayerWrapper(
			VidkaFastPreviewPlayer playerFast,
			IVideoPlayer playerWmp,
			IVidkaMainForm form)
        {
            this.playerFast = playerFast;
            this.playerWmp = playerWmp;
            this.form = form;
        }
コード例 #40
0
        public EditOperationSelectOriginalSegment(ISomeCommonEditorOperations iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoEditor editor,
			IVideoPlayer videoPlayer)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            keyboardMode = false;
            isStarted = false;
        }
コード例 #41
0
        public EditOperationMoveVideo(ISomeCommonEditorOperations iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoEditor editor,
			IVideoPlayer videoPlayer)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            copyMode = false;
            keyboardMode = false;
        }
コード例 #42
0
        public MouseOpSelectOriginalSegment(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            keyboardMode = false;
            isStarted = false;
        }
コード例 #43
0
        public MouseOpVideoEasings(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer,
            TrimDirection side)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            this.side = side;
            keyboardMode = false;
        }
コード例 #44
0
ファイル: MediaListPlayer.cs プロジェクト: rmusina/blankie
        public MediaListPlayer(IntPtr hMediaLib, IMediaList mediaList)
        {
            m_mediaList = mediaList;
             m_hMediaListPlayer = LibVlcMethods.libvlc_media_list_player_new(hMediaLib);
             LibVlcMethods.libvlc_media_list_player_set_media_list(m_hMediaListPlayer, ((INativePointer)m_mediaList).Pointer);
             m_mediaList.Dispose();

             m_videoPlayer = new VideoPlayer(hMediaLib);
             LibVlcMethods.libvlc_media_list_player_set_media_player(m_hMediaListPlayer, ((INativePointer)m_videoPlayer).Pointer);
             m_videoPlayer.Dispose();
        }
コード例 #45
0
        public MouseOpMoveVideo(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer,
			MetaGeneratorInOtherThread metaGenerator)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            this.metaGenerator = metaGenerator;
            copyMode = false;
            keyboardMode = false;
        }
コード例 #46
0
        public void Open(IVideoPlayer videoPlayer)
        {
            if (videoPlayer == null)
                throw new ArgumentNullException("videoPlayer");

            this.videoPlayer = videoPlayer;

            videoHost.Child = videoPlayer as UIElement;

            IsOpen = true;

            Show();
        }
コード例 #47
0
        public EditOperationTrimVideo(ISomeCommonEditorOperations iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoEditor editor,
			IVideoPlayer videoPlayer,
			TrimDirection side,
			ProjectDimensionsTimelineType timeline)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            this.side = side;
            this.timeline = timeline;
            keyboardMode = false;
        }
コード例 #48
0
        public MouseOpAbstract(
            IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer)
        {
            this.iEditor = iEditor;
            this.uiObjects = uiObjects;
            this.dimdim = dimdim;
            this.editor = editor;
            this.videoPlayer = videoPlayer;
        }
コード例 #49
0
ファイル: Form1.cs プロジェクト: Onemann/NDS20_WinPlayer
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            _mFactory = new MediaPlayerFactory(true);
            _mSourcePlayer = _mFactory.CreatePlayer<IVideoPlayer>();
            _mSourcePlayer.Events.PlayerPlaying += new EventHandler(Events_PlayerPlaying);
            _mSourcePlayer.Mute = true;
            _mRenderPlayer = _mFactory.CreatePlayer<IVideoPlayer>();
            _mRenderPlayer.WindowHandle = panel1.Handle;
            _mInputMedia = _mFactory.CreateMedia<IMemoryInputMedia>(MediaStrings.Imem);
            SetupOutput(_mSourcePlayer.CustomRendererEx);
        }
コード例 #50
0
        public MouseOpTrimVideo(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer,
			TrimDirection side,
			ProjectDimensionsTimelineType timeline)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            this.side = side;
            this.timeline = timeline;
            keyboardMode = false;
        }
コード例 #51
0
        public EditOperationAbstract(
			ISomeCommonEditorOperations iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoEditor editor,
			IVideoPlayer videoPlayer)
        {
            this.iEditor = iEditor;
            this.uiObjects = uiObjects;
            this.dimdim = dimdim;
            this.editor = editor;
            this.videoPlayer = videoPlayer;
        }
コード例 #52
0
ファイル: MainWindow.xaml.cs プロジェクト: GoshaDE/nVLC
        public MainWindow()
        {
            InitializeComponent();

            m_factory = new MediaPlayerFactory();
            m_player = m_factory.CreatePlayer<IVideoPlayer>();
            m_videoImage.Initialize(m_player.CustomRendererEx);

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            slider2.Value = m_player.Volume;
        }
コード例 #53
0
        public PlaylistController(ILogger logger, IPlaylistViewModel playlist, PlaylistTaskViewModel task, IVideoPlayer videoPlayer)
        {
            if (logger == null)
                throw new ArgumentNullException("logger");
            if (playlist == null)
                throw new ArgumentNullException("playlist");
            if (task == null)
                throw new ArgumentNullException("task");
            if (videoPlayer == null)
                throw new ArgumentNullException("videoPlayer");

            this.logger = logger;
            this.playlist = playlist;
            this.task = task;
            this.videoPlayer = videoPlayer;
        }
コード例 #54
0
    private void SyncToPlayer(IVideoPlayer player)
    {
      if (_refreshRateChanger != null)
      {
        _refreshRateChanger.Dispose();
        _refreshRateChanger = null;
      }
      MediaItem mediaItem = GetCurrentMediaItem(player);
      if (mediaItem == null)
        return;

      int intFps;
      if (MediaItemAspect.TryGetAttribute(mediaItem.Aspects, VideoAspect.ATTR_FPS, out intFps))
      {
        ICollection<int> excludeRates = TryParseIntList(_settings.Settings.NoChangeForRate);
        if (excludeRates.Contains(intFps))
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; No change due to settings.", intFps);
          return;
        }
        _refreshRateChanger = new TemporaryRefreshRateChanger(GetScreenNum());
        double fps = intFps;
        if (intFps == 23)
          fps = 23.976;
        if (intFps == 29)
          fps = 29.970;
        if (intFps == 59)
          fps = 59.940;

        var currentRefreshRate = _refreshRateChanger.GetRefreshRate();
        if (!IsMultipleOf(currentRefreshRate, fps))
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; Screen refresh rate {1}, trying to change it.", fps, currentRefreshRate);
          _refreshRateChanger.SetRefreshRate(fps);
        }
        else
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; Screen refresh rate {1}, no change required.", fps, currentRefreshRate);
        }
      }
    }
コード例 #55
0
ファイル: MainWindow.xaml.cs プロジェクト: potmadu/P001DS003T
        public MainWindow()
        {
            InitializeComponent();

            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();
            p.BackColor = System.Drawing.Color.Black;
            windowsFormsHost1.Child = p;

            m_factory = new MediaPlayerFactory(true);
            m_player = m_factory.CreatePlayer<IVideoPlayer>();

            this.DataContext = m_player;

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = p.Handle;
            slider2.Value = m_player.Volume;
        }
コード例 #56
0
        public VideoPlayerViewModel(IVideoPlayer videoPlayer, IEventAggregator eventAggregator,
            ILibraryService libraryService) : base(videoPlayer)
        {
            this.IsLoading = Visibility.Hidden;
            this.IsExitMenuVisible = Visibility.Hidden;

            this._eventAggregator = eventAggregator;
            this._libraryService = libraryService;
            this.GoToHomePageCommand = new DelegateCommand(this.SetHomePage);
            this.ToggleStyleCommand = new DelegateCommand(this.ToggleWindowStyle);
            this.CloseCommand = new DelegateCommand(this.CloseAsync, () =>this.SelectedTab != 3);

            this._eventAggregator.GetEvent<GoToPage>().Subscribe(this.SetSelectedTab);
            this._eventAggregator.GetEvent<LibraryUpdating>()
                .Subscribe(message =>
                {
                    this.LoadingMessage = message;
                    this.IsLoading = Visibility.Visible;
                });
            this._eventAggregator.GetEvent<LibraryUpdated>()
                .Subscribe(payload => { this.IsLoading = Visibility.Hidden; });
        }
コード例 #57
0
    private void SyncToPlayer(IVideoPlayer player)
    {
      if (_refreshRateChanger != null)
      {
        _refreshRateChanger.Dispose();
        _refreshRateChanger = null;
      }
      MediaItem mediaItem = GetCurrentMediaItem(player);
      if (mediaItem == null)
        return;

      int intFps;
      if (MediaItemAspect.TryGetAttribute(mediaItem.Aspects, VideoAspect.ATTR_FPS, out intFps))
      {
        int mappedIntFps;
        if (!_settings.Settings.RateMappings.TryGetValue(intFps, out mappedIntFps) || mappedIntFps <= 0)
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; No mapping for this rate found.", intFps);
          return;
        }

        _refreshRateChanger = new TemporaryRefreshRateChanger(GetScreenNum(), true);
        var fps = TranslateFps(mappedIntFps);

        var currentRefreshRate = _refreshRateChanger.GetRefreshRate();
        if (currentRefreshRate != fps)
        {
          ServiceRegistration.Get<ILogger>().Info("RefreshRateChanger: Video fps: {0}; Screen refresh rate {1}, trying to change it.", fps, currentRefreshRate);
          _refreshRateChanger.SetRefreshRate(fps);
        }
        else
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; Screen refresh rate {1}, no change required.", fps, currentRefreshRate);
        }
      }
    }
コード例 #58
0
ファイル: MainForm.cs プロジェクト: chekiI/MediaPortal-2
 private void SynchronizeToVideoPlayerFramerate(IVideoPlayer videoPlayer)
 {
   lock (_screenManager.SyncObj)
   {
     if (videoPlayer == _synchronizedVideoPlayer)
       return;
     ISharpDXVideoPlayer oldPlayer = _synchronizedVideoPlayer;
     _synchronizedVideoPlayer = null;
     if (oldPlayer != null)
       oldPlayer.SetRenderDelegate(null);
     ISharpDXVideoPlayer SharpDXVideoPlayer = videoPlayer as ISharpDXVideoPlayer;
     if (SharpDXVideoPlayer != null)
       if (SharpDXVideoPlayer.SetRenderDelegate(VideoPlayerRender))
       {
         _synchronizedVideoPlayer = SharpDXVideoPlayer;
         ServiceRegistration.Get<ILogger>().Info("SkinEngine MainForm: Synchronized render framerate to video player '{0}'", SharpDXVideoPlayer);
       }
       else
         ServiceRegistration.Get<ILogger>().Info(
             "SkinEngine MainForm: Video player '{0}' doesn't provide render thread synchronization, using default framerate", SharpDXVideoPlayer);
   }
 }
コード例 #59
0
ファイル: MainForm.cs プロジェクト: chekiI/MediaPortal-2
 /// <summary>
 /// Updates the local state corresponding to the current video player, given in parameter <paramref name="videoPlayer"/>.
 /// This method will check if the given player is suspended (i.e. it is paused). It will also update the thread state so that the system
 /// won't shut down while playing a video.
 /// </summary>
 /// <param name="videoPlayer">Player to check.</param>
 private void UpdateVideoPlayerState(IVideoPlayer videoPlayer)
 {
   IMediaPlaybackControl player = videoPlayer as IMediaPlaybackControl;
   _videoPlayerSuspended = player == null || player.IsPaused;
   PlayerSuspendLevel = videoPlayer == null ? SuspendLevel.None : SuspendLevel.DisplayRequired;
 }
コード例 #60
0
ファイル: VLCStream.cs プロジェクト: vmail/main
        private void DisposePlayer()
        {
            if (_mFactory == null)
                return;
            try
            {
                _mPlayer.Dispose();
            }
            catch { }
            try
            {
                _mFactory.Dispose();
            }
            catch { }
            try
            {
                _mMedia.Dispose();
            }
            catch { }

            _mPlayer = null;
            _mFactory = null;
            _mMedia = null;
        }