示例#1
0
文件: AcmStream.cs 项目: h4ltYu/EOS
        /// <summary>
        /// Suggests an appropriate PCM format that the compressed format can be converted
        /// to in one step
        /// </summary>
        /// <param name="compressedFormat">The compressed format</param>
        /// <returns>The PCM format</returns>
        // Token: 0x060007D0 RID: 2000 RVA: 0x00016DD0 File Offset: 0x00014FD0
        public static WaveFormat SuggestPcmFormat(WaveFormat compressedFormat)
        {
            WaveFormat waveFormat = new WaveFormat(compressedFormat.SampleRate, 16, compressedFormat.Channels);

            MmException.Try(AcmInterop.acmFormatSuggest(IntPtr.Zero, compressedFormat, waveFormat, Marshal.SizeOf(waveFormat), AcmFormatSuggestFlags.FormatTag), "acmFormatSuggest");
            return(waveFormat);
        }
示例#2
0
        /// <summary>
        /// Suggests an appropriate PCM format that the compressed format can be converted
        /// to in one step
        /// </summary>
        /// <param name="compressedFormat">The compressed format</param>
        /// <returns>The PCM format</returns>
        public static WaveFormat SuggestPcmFormat(WaveFormat compressedFormat)
        {
            // create a PCM format
            WaveFormat suggestedFormat = new WaveFormat(compressedFormat.SampleRate, 16, compressedFormat.Channels);

            MmException.Try(AcmInterop.acmFormatSuggest(IntPtr.Zero, compressedFormat, suggestedFormat, Marshal.SizeOf(suggestedFormat), AcmFormatSuggestFlags.FormatTag), "acmFormatSuggest");

            /*IntPtr suggestedFormatPointer = WaveFormat.MarshalToPtr(suggestedFormat);
             * IntPtr compressedFormatPointer = WaveFormat.MarshalToPtr(compressedFormat);
             * MmResult result = AcmInterop.acmFormatSuggest2(IntPtr.Zero, compressedFormatPointer, suggestedFormatPointer, Marshal.SizeOf(suggestedFormat), AcmFormatSuggestFlags.FormatTag);
             * suggestedFormat = WaveFormat.MarshalFromPtr(suggestedFormatPointer);
             * Marshal.FreeHGlobal(suggestedFormatPointer);
             * Marshal.FreeHGlobal(compressedFormatPointer);
             * MmException.Try(result, "acmFormatSuggest");*/

            return(suggestedFormat);
        }