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);
            }
        }
Exemple #3
0
        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;
 }