void startPlayback(AudioBufferStream stream) { stopCurrentItem(); IPlayer player = new AudioPlayer(new PlayerSettings(stream)); currentAudioPlayer = player as IAudioPlayer; IPlayerFactory savedFactory = g_Player.Factory; g_Player.Factory = new PlayerFactory(player); isAudioPlaying = g_Player.Play(AudioPlayer.AIRPLAY_DUMMY_FILE, g_Player.MediaType.Music); g_Player.Factory = savedFactory; if (!isAudioPlaying) { currentAudioPlayer = null; return; } //Mediaportal sets the metadata skin properties internally, we overwrite them after a small delay ThreadPool.QueueUserWorkItem((o) => { Thread.Sleep(SKIN_PROPERTIES_UPDATE_DELAY); invoke(delegate() { setMetaData(); setCover(); setDuration(); }, false); }); }
void restartPlayback() { Logger.Instance.Debug("AirPlayer: Restarting playback"); AudioBufferStream input = airtunesServer.GetStream(StreamType.Wave); Logger.Instance.Debug("AirPlayer: Got audio stream"); if (input != null) { startPlayback(input); } }
void startPlayback() { AudioBufferStream stream = airtunesServer.GetStream(StreamType.Wave); if (stream != null) { AudioItem item = new AudioItem(new PlayerSettings(stream)); setMetaData(item); PlayItemsModel.CheckQueryPlayAction(item); setDuration(); isAudioPlaying = true; } }
void airtunesServer_StreamReady(object sender, RaopEventArgs e) { AudioBufferStream input = airtunesServer.GetStream(StreamType.Wave); if (input == null) { return; } invoke(delegate() { if (!isAudioBuffering) { airtunesServer.SendCommand(RemoteCommand.Stop); return; } isAudioBuffering = false; GUIWaitCursor.Hide(); startPlayback(input); }, false); }
public PlayerSettings(AudioBufferStream source) { this.source = source; }
public StreamSourcePlayer(AudioBufferStream source) { this.source = source; }