Попробуйте это -
fseek(fp, 0, SEEK_END);
unsigned long int file_size = ftell(fp);
rewind(fp);
Что это значит, сначала, найдите конец файла; затем сообщите, где находится указатель файла. Наконец (это необязательно) он перематывается обратно в начало файла. Обратите внимание, что fp
должен быть двоичным потоком.
file_size содержит количество байтов, содержащихся в файле. Обратите внимание, что поскольку (согласно climits.h) беззнаковый длинный тип ограничен 4294967295 байтами (4 гигабайта), вам нужно будет найти другой тип переменной, если вы, вероятно, будете иметь дело с файлами, большими, чем это.
Если вам нужно базовое клиентское решение, вы можете использовать два отдельных проигрывателя или видео-теги на своей веб-странице, показывая один и скрывая другой.
Тот, который виден, воспроизводит текущее видео.
Другой игрок загружается, запускается и немедленно приостанавливает следующее видео.
Когда заканчивается первое видео, вы скрываете этот проигрыватель и делаете его видимым, не прерывая воспроизведение одновременно.
Затем вы предварительно загружаете следующее видео в исходный проигрыватель и продолжаете.
Этот метод успешно используется на некоторых сайтах, где рекламные паузы смешиваются с основным видео, например.