Ejemplo n.º 1
0
 /// <summary>
 /// Begining playing media by mediaplayer, using current filter settings.
 /// </summary>
 private void startPlaying(VlcMediaPlayerInternal mediaplayer, VlcMediaInternal media) {
     if (logger.IsTraceEnabled) {
         logger.Trace("startPlaying method called.");
     }
     // Dump VLC Objects before start playing
     if (logger.IsTraceEnabled) {
         logger.Trace("DUMP before start playing :");
         logger.Trace(getVlcObjectsTreeDump());
     }
     List<int> loadedFiltersIdList = new List<int>();
     //
     libvlc_instance_t libvlc_instance = internalObjectsFactory.GetInteropStructure();
     getVlcObjectsByName(libvlc_instance.p_libvlc_int, ADJUST_FILTER_ALIAS, loadedFiltersIdList);
     //
     mediaplayer.Play();
     if (logger.IsTraceEnabled) {
         logger.Trace("mediaPlayer.Play() called.");
     }
     // Wait for PLAYING state. Otherwise the next call Pause() will take no effect
     waitForMediaState(media, VlcMediaState.PLAYING);
     if (logger.IsTraceEnabled) {
         logger.Trace("VlcMediaState is PLAYING now.");
     }
     // Dump VLC Objects after start playing
     if (logger.IsTraceEnabled) {
         logger.Trace("DUMP after star playing :");
         logger.Trace(getVlcObjectsTreeDump());
     }
     // If other thread is processing filters now, stop them and wait until it stopped
     stopWaitingFiltersThread();
     //
     currentMediaFilterAvailable = false;
     // Starting new thread for waiting filters
     if (logger.IsTraceEnabled) {
         logger.Trace("Starting new thread for waiting IAdjustable filter.");
     }
     //
     waitingFiltersThread = new Thread(waitingFiltersThreadHandler);
     waitingFiltersThread.Start(new VlcObjectsSnapshot(loadedFiltersIdList, libvlc_instance));
 }
Ejemplo n.º 2
0
 internal VlcPlayer(PlayerOutput playerOutput, IInternalObjectsFactory internalObjectsFactory, IVolumeManager volumeManager) {
     if (playerOutput == null) {
         throw new ArgumentNullException("playerOutput");
     }
     if (volumeManager == null) {
         throw new ArgumentNullException("volumeManager");
     }
     if (internalObjectsFactory == null) {
         throw new ArgumentNullException("internalObjectsFactory");
     }
     //
     this.playerOutput = playerOutput;
     this.volumeManager = volumeManager;
     this.internalObjectsFactory = internalObjectsFactory;
     //
     firstMediaPlayerInternal = this.internalObjectsFactory.CreateVlcMediaPlayerInternal();
     secondMediaPlayerInternal = this.internalObjectsFactory.CreateVlcMediaPlayerInternal();
     //
     initializeEventsEngine();
 }