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; }
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; } }
public void ChooseAudioStream(AudioStreamDescriptor asd) { IPlayerContextManager playerContextManager = ServiceRegistration.Get<IPlayerContextManager>(); IPlayerManager playerManager = ServiceRegistration.Get<IPlayerManager>(); playerContextManager.SetAudioStream(asd); playerManager.Muted = false; }
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; }