Beispiel #1
0
        private int OnMusicDelivery(IntPtr sessionHandle, IntPtr audioFormatHandle, IntPtr frames, int numFrames)
        {
            if (numFrames == 0)
            {
                return(0);
            }

            if (frames == IntPtr.Zero)
            {
                return(0);
            }

            AudioFormat audioFormat = LibSpotify.AudioFormatFromHandle(audioFormatHandle);

            int n = numFrames * FrameSize(audioFormat);

            byte[] pcmData = new byte[n];

            Marshal.Copy(frames, pcmData, 0, n);

            EventDispatcher.Dispatch(this, sessionHandle, MusicDelivered,
                                     new MusicDeliveryEventArgs(pcmData, audioFormat));

            pcmData = null;

            return(numFrames);
        }