コード例 #1
0
ファイル: PlayerContext.cs プロジェクト: davinx/MediaPortal-2
 public ICollection<AudioStreamDescriptor> GetAudioStreamDescriptors(out AudioStreamDescriptor currentAudioStream)
 {
   currentAudioStream = null;
   ICollection<AudioStreamDescriptor> result = new List<AudioStreamDescriptor>();
   IVideoPlayer videoPlayer = CurrentPlayer as IVideoPlayer;
   if (videoPlayer != null)
   {
     ICollection<string> audioStreamNames = videoPlayer.AudioStreams;
     string currentAudioStreamName = videoPlayer.CurrentAudioStream;
     foreach (string streamName in audioStreamNames)
     {
       AudioStreamDescriptor descriptor = new AudioStreamDescriptor(this, videoPlayer.Name, streamName);
       if (streamName == currentAudioStreamName)
         currentAudioStream = descriptor;
       result.Add(descriptor);
     }
     return result;
   }
   IAudioPlayer audioPlayer = CurrentPlayer as IAudioPlayer;
   if (audioPlayer != null)
   {
     string title = audioPlayer.MediaItemTitle;
     if (string.IsNullOrEmpty(title))
     {
       MediaItem item = Playlist.Current;
       string mimeType;
       string mediaItemTitle;
       title = item.GetPlayData(out mimeType, out mediaItemTitle) ? mediaItemTitle : "Audio";
     }
     result.Add(currentAudioStream = new AudioStreamDescriptor(this, audioPlayer.Name, title));
   }
   return result;
 }
コード例 #2
0
 public bool SetAudioStream(AudioStreamDescriptor stream)
 {
   IPlayerManager playerManager = ServiceRegistration.Get<IPlayerManager>();
   IPlayerContext playerContext = stream.PlayerContext;
   lock (playerManager.SyncObj)
   {
     if (!playerContext.IsValid)
       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.AudioSlotIndex = playerContext.PlayerSlotController.SlotIndex;
     return true;
   }
 }
コード例 #3
0
 public void ChooseAudioStream(AudioStreamDescriptor asd)
 {
   IPlayerContextManager playerContextManager = ServiceRegistration.Get<IPlayerContextManager>();
   IPlayerManager playerManager = ServiceRegistration.Get<IPlayerManager>();
   playerContextManager.SetAudioStream(asd);
   playerManager.Muted = false;
 }
コード例 #4
0
 public ICollection<AudioStreamDescriptor> GetAvailableAudioStreams(out AudioStreamDescriptor currentAudioStream)
 {
   currentAudioStream = null;
   IPlayerManager playerManager = ServiceRegistration.Get<IPlayerManager>();
   ICollection<AudioStreamDescriptor> result = new List<AudioStreamDescriptor>();
   int audioSlotIndex = playerManager.AudioSlotIndex;
   for (int i = 0; i < 2; i++)
   {
     IPlayerContext playerContext = GetPlayerContext(i);
     if (playerContext == null)
       continue;
     AudioStreamDescriptor current;
     CollectionUtils.AddAll(result, playerContext.GetAudioStreamDescriptors(out current));
     if (audioSlotIndex == i)
       currentAudioStream = current;
   }
   return result;
 }