1

この記事を使ってオーディオ CD を書きました

IMAPI2 を使用してオーディオ CD を作成する

この記事に従って、私はオーディオ CD を書き込めますが、より小さな wav ファイル (最大 30 分のオーディオ ファイル) を使用します。

そして OutOfMemoryException がオンラインでスローされます

IntPtr fileData = Marshal.AllocHGlobal((IntPtr)SizeOnDisc);

public void PrepareStream()
{
byte[] waveData = new byte[SizeOnDisc];

//
// The size of the stream must be a multiple of the sector size 2352
// SizeOnDisc rounds up to the next sector size
//
IntPtr fileData = Marshal.AllocHGlobal((IntPtr)SizeOnDisc);
FileStream fileStream = File.OpenRead(filePath);

int sizeOfHeader = Marshal.SizeOf(typeof(WAV_HEADER));

//
// Skip over the Wav header data, because it only needs the actual data
//
fileStream.Read(waveData, sizeOfHeader, (int)m_fileLength - sizeOfHeader);

Marshal.Copy(waveData, 0, fileData, (int)m_fileLength - sizeOfHeader);

CreateStreamOnHGlobal(fileData, true, out wavStream);
}

他の方法で IStream を作成しようとしましたが、IMAPI2 API が次のエラー E_IMAPI_DF2RAW_STREAM_NOT_SUPPORTED (HRESULT)0xC0AA060D 提供されたオーディオ ストリームが無効です。

ですから、非常に大きな wav ファイルをオーディオ CD に書き込むのを誰か助けてください。

4

0 に答える 0