Exemplo n.º 1
0
        /// <summary>
        /// buffers a frame into mpg123.
        /// </summary>
        void BufferFrame()
        {
            for (int i = 0; i < 1;)
            {
                AudioFrame frame = m_Source.GetNextFrame();
                if (frame == null)
                {
                    break;
                }

                Decoding?.Invoke(this, new AudioFrameEventArgs(frame));
                if (frame.IsAudio)
                {
                    m_DecodeFifoBuffer.Enqueue(frame.Data);
                    i++;
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>Reads the next audio frame and silently skips garbage and invalid frames.</summary>
        /// <returns></returns>
        MP3AudioFrame ReadNextAudioFrame()
        {
            MP3AudioFrame l_MP3Frame = null;

            while (l_MP3Frame == null)
            {
                AudioFrame frame = m_Source.GetNextFrame();

                // eof ?
                if (frame == null)
                {
                    return(null);
                }

                OnDecoding(frame);
                l_MP3Frame = frame as MP3AudioFrame;
            }
            return(l_MP3Frame);
        }