xolod » Чт апр 06, 2006 7:27 pm
Есть FAQ, оригинал. Читаем и наслаждаемся.
<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->The MP3 format doesn't natively support sample-accurate seeking, and sample accurate seeking is absolutely required by some other features of foobar2000 (such as .CUE playback). Therefore, MP3 seeking works by bruteforce-walking the MPEG stream chain (this gets faster when you pass through the same point of file for the second time because seektables have been built in the RAM). Unfortunately, seeking can't be optimized for CBR files (frame sizes aren't really constant because of padding used), or for VBR headers (both Xing and VBRI headers contain only approximated info and are useless for sample-exact seeking). <!--QuoteEnd--></div><!--QuoteEEnd-->
Если читать в лом, объясню на пальцах:
MP3 не поддерживает на базовом уровне перемотку sample-accurate (дословно - аккурат в начало нужного сэмпла), но эта возможность жизненно необходима для других функций foobar (как например проигрывание .CUE файлов), посему fb2k пытается иммулировать sample-accurate перемотку, пропуская через себя весь поток данных и считая сэмплы. Перемотка будет быстрее, если в это место или рядом (плюс-минус РАЗМЕР_БУФЕРА) уже перематывали, потому как в RAM (ОЗУ) строятся таблицы перемотки.
Да, забыл, вопрос "почему это так хорошо делают WMP и WA":
Потому что они плевать хотели на accurate-sample и швыряют вас примерно на тот кусок, что вы указали с помощью не совсем точного контрола перемотки в интерфейсе.
Последний раз редактировалось
xolod Чт апр 06, 2006 7:30 pm, всего редактировалось 1 раз.
Чтобы понять Microsoft, вдумайтесь в значение кода ошибки ERROR_SUCCESS.