Позиционирование аудиовизуального потока
Следующий интерфейс называется IMediaSeeking. Как следует из его названия, он предназначен для установки позиции в аудиовизуальном потоке. Кроме того, он позволяет задать темп воспроизведения аудиовизуального потока. В рассматриваемом примере программы я использую этот интерфейс чтобы осуществить перемотку аудиовизуального потока к его началу, когда воспроизведение музыки заканчивается. Так же я использую его для задания темпа воспроизведения. Методы данного интерфейса перечислены в таблице7.9.
Таблица 7.8. Методы интерфейса IMediaSeeking | |
Метод | Описание |
CheckCapabilities | Проверяет, обладает ли поток указанными возможностями. |
ConvertTimeFormat | Преобразует из одного формата в другой. |
GetAvailable | Возвращает доступный диапазон значений времени для позиционирования. |
GetCapabilities | Возвращает возможности аудиовизуального потока. |
GetCurrentPosition | Возвращает текущую позицию в потоке. |
GetDuration | Возвращает длину потока. |
GetPositions | Возвращает текущую и конечную позиции. |
GetPreroll | Возвращает размер аудиовизуального потока, расположенного перед начальной позицией. |
GetRate | Возвращает темп воспроизведения. |
GetStopPosition | Возвращает конечную позицию. Она сообщает вам, когда воспроизведение потока будет завершено. |
GetTimeFormat | Возвращает используемый в данный момент формат времени. |
IsFormatSupported | Проверяет поддерживается ли указанный формат времени. |
IsUsingTimeFormat | Проверяет используется ли в данный момент указанный формат времени. |
QueryPreferredFormat | Возвращает предпочтительный формат времени. |
SetPositions | Устанавливает текущую и завершающую позиции. |
SetRate | Устанавливает темп воспроизведения. |
SetTimeFormat | Устанавливает формат времени. |
В описываемой программе я использую функции SetRate() и SetPositions().