Определить частичную загрузку (WAV-файл) - PullRequest
0 голосов
/ 28 мая 2018

Есть ли способ определить, был ли файл загружен только частично в C #?В частности, я имею в виду файл WAV, загружаемый в сетевой путь (например, на общий диск), который остановился из-за проблем с сетью или чего-то подобного.

Я моделирую это, подключив сетевой кабельв середине передачи.Но я обнаружил, что файл создается на другой стороне, но размер файла равен полному размеру файла, и даже длина записи (полученная с помощью метода, приведенного ниже) равна полной длине.Но когда я воспроизводю файл, звук просто обрывается в середине файла, а оставшаяся часть просто продолжает играть в тишине (предположительно там, где я отключил сетевой кабель).

Вот как яm получая длину записи.

StringBuilder bufferLengthStr = new StringBuilder(32);

mciSendString(string.Format("open \"{0}\" type waveaudio alias wave", fileName), null, 0, IntPtr.Zero);
mciSendString("status wave length", bufferLengthStr, bufferLengthStr.Capacity, IntPtr.Zero);
mciSendString("close wave", null, 0, IntPtr.Zero);

int recordingLength = 0;
int.TryParse(bufferLengthStr.ToString(), out recordingLength);

Теперь дело в том, что я знаю, как долго должен быть файл, но вышеописанный метод возвращает полную длину, даже если эта полная длина не была заполненасо звуком.

...