Поделиться через


Сохранение содержимого

[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Он был заменен средством чтения исходного кода и модуля записи приемника. Средство чтения исходного кода и модуль записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код по возможности использовал средство чтения исходного кода и модуль записи приемника вместо пакета SDK для Windows Media Format 11. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

С помощью этого пакета SDK приложение может сохранять скачанное или потоковое содержимое на локальный компьютер пользователя, вызывая метод IWMReaderAdvanced2::SaveFileAs в объекте средства чтения. Для потокового содержимого сервер должен использовать потоковую передачу быстрого кэша, как описано в разделе Включение потоковой передачи быстрого кэша из клиента. Для потокового содержимого метод SaveFileAs создает ASX-файл, указывающий на ASF-файл, содержащий сохраненное содержимое. Если объект средства чтения выполняет потоковую передачу списка воспроизведения на стороне сервера, каждая запись сохраняется как отдельный ASF-файл, а ASX-файл указывает на каждый asf-файл. Для загруженного содержимого метод SaveFileAs просто создает ASF-файл.

Чтобы сохранить содержимое в локальный файл, выполните указанные ниже действия.

  1. Вызовите IWMReader::Open с URL-адресом. Open — это асинхронный вызов, который возвращается немедленно. Дождитесь завершения операции, как описано в разделе Создание средства чтения и Открытие файла.
  2. Запрос объекта средства чтения для интерфейса IWMReaderAdvanced4 .
  3. Проверьте, можно ли сохранить содержимое, вызвав метод IWMReaderAdvanced4::CanSaveFileAs . Если метод возвращает значение False, содержимое не может быть сохранено локально. В противном случае перейдите к шагу 4.
  4. Вызовите метод IWMReaderAdvanced4::IsUsingFastCache , чтобы определить, использует ли сервер потоковую передачу быстрого кэша.
  5. Вызовите IWMReaderAdvanced2::SaveFileAs с именем локального файла. Если метод IsUsingFastCache вернул значение True, присвойте имени файла расширение ASX. В противном случае присвойте файлу имя расширения ASF, WMA или WMV.

Приложение может отменить операцию сохранения, вызвав метод IWMReaderAdvanced4::CancelSaveFileAs .

Сохраненное содержимое может быть защищено с помощью DRM, поэтому невозможно воспроизвести файл на другом компьютере. Дополнительные сведения о защите содержимого см. в статье Функции управления цифровыми правами.

Интерфейс IWMReader

Интерфейс IWMReaderAdvanced2