Пример #1
0
        // PREVIEW AUDIO CALLBACK FUNCTION
        //
        EXPORTS.ReturnOfCallbackEnum on_process_preview_audio_buffer(uint pDevice, double dSampleTime, uint pFrameBuffer, uint nFrameBufferLen, uint pUserData)
        {
            uint nCH = pUserData;

            //string strOutput = "CH" + (nCH + 1).ToString() + " : on_process_preview_audio_buffer => pDevice : " + pDevice.ToString() + " , dSampleTime : " + dSampleTime.ToString() + " , pFrameBuffer : " + pFrameBuffer.ToString() + " , nFrameBufferLen : " + nFrameBufferLen.ToString() + " , pUserData : " + pUserData.ToString() + " \n";

            //OutputDebugString(strOutput);

            if (m_bIsShareRecord && m_bShareRecordCH[nCH])
            {
                EXPORTS.QCAP_SET_AUDIO_SHARE_RECORD_UNCOMPRESSION_BUFFER(0, pFrameBuffer, nFrameBufferLen);
            }

            if (m_bIsStreaming && m_hRtspCapDev != 0)
            {
                switch (nCH)
                {
                case 0:
                    lock (m_hNetworkServerAccessCriticalSection_a0)
                    {
                        if (m_nNetworkServerState_a[nCH] > 0x00000000)
                        {
                            EXPORTS.QCAP_SET_AUDIO_BROADCAST_SERVER_UNCOMPRESSION_BUFFER(m_hRtspCapDev, nCH, pFrameBuffer, nFrameBufferLen);
                        }
                    }
                    break;

                case 1:
                    lock (m_hNetworkServerAccessCriticalSection_a1)
                    {
                        if (m_nNetworkServerState_a[nCH] > 0x00000000)
                        {
                            EXPORTS.QCAP_SET_AUDIO_BROADCAST_SERVER_UNCOMPRESSION_BUFFER(m_hRtspCapDev, nCH, pFrameBuffer, nFrameBufferLen);
                        }
                    }
                    break;

                case 2:
                    lock (m_hNetworkServerAccessCriticalSection_a2)
                    {
                        if (m_nNetworkServerState_a[nCH] > 0x00000000)
                        {
                            EXPORTS.QCAP_SET_AUDIO_BROADCAST_SERVER_UNCOMPRESSION_BUFFER(m_hRtspCapDev, nCH, pFrameBuffer, nFrameBufferLen);
                        }
                    }
                    break;

                case 3:
                    lock (m_hNetworkServerAccessCriticalSection_a3)
                    {
                        if (m_nNetworkServerState_a[nCH] > 0x00000000)
                        {
                            EXPORTS.QCAP_SET_AUDIO_BROADCAST_SERVER_UNCOMPRESSION_BUFFER(m_hRtspCapDev, nCH, pFrameBuffer, nFrameBufferLen);
                        }
                    }
                    break;

                default:
                    break;
                }
            }

            return(EXPORTS.ReturnOfCallbackEnum.QCAP_RT_OK);
        }