C # запись / запись большого файла WAV на аудио CD - PullRequest
1 голос
/ 15 декабря 2011

Я использовал эту статью, чтобы написать аудио CD

Создание аудио-CD с использованием IMAPI2

Следуя этой статье, я могу написать аудио 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

...