Есть ли задокументированный JavaScript API для проигрывателя Windows Media?

Я хочу использовать JavaScript для управления встроенным проигрывателем Windows Media, а также для доступа к любым свойствам, предоставляемым проигрывателем. Я нашел в сети несколько хакерских примеров, но ничего конкретного.

Мне действительно нужен доступ к воспроизведению, паузе, остановке, поиску, полноэкранному режиму и т. д. Я также хотел бы иметь доступ к любым событиям, которые игрок транслирует.

Помощь была бы замечательной (у меня уже есть эквивалент Flash, просто чтобы вы знали), спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
7
0
24 349
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Проигрыватель Windows Media представлен как элемент управления ActiveX, к которому должен иметь доступ любой язык сценариев, запущенный на хосте сценариев Windows. Вы должны иметь возможность использовать jscript для управления им. Jscript - это микрософтовская реализация java-скрипта. Для получения информации о том, какие объекты и методы доступны при использовании jscript для проигрывателя Windows Media, см. эта ссылка.

Насколько мне известно, нет открытой библиотеки JavaScript для кроссбраузерной клиентской обработки WMP-плеера. Однако эта ссылка должен упростить вам запуск вашей собственной небольшой библиотеки. Код может нуждаться в обновлении и тестировании в современных версиях браузеров, но основы у вас есть.

Библиотека, которую вы ищете, была бы отличной идеей для проекта Google Code, я предполагаю, что, хотя сегодня все используют Adobe Flash с sIFR / swfobject или Microsoft Silverligt с систр и т. д., Нет особого интереса писать клиентские скрипты, управляющие WMP.

К сожалению, мне приходится иметь дело с большим старым корпоративным клиентом, ИТ-отдел которого считает, что добавление Flash или Silverlight к образу ОС может вызвать конфликты. Ура клиентской работе ... спасибо за ссылку, но она кажется полезной.

ironkeith 18.11.2008 23:46
Ответ принят как подходящий

В центре разработчиков Microsoft есть API, но он будет работать только в том случае, если вы встраиваете проигрыватель Windows Media с помощью active-x.

Чтобы «узнать» больше об API, посетите MSDN: http://msdn.microsoft.com/en-us/library/dd564034(VS.85).aspx

Ссылка предназначена для Media Player в Microsoft Windows CE .NET 4.2. Я не думаю, что это та операционная система, которая вам действительно нужна.

Ron Harlev 01.08.2009 00:56

API требует подключения ActiveX, встроенного в Internet Explorer, или может использовать плагин для Firefox.

Вот образец страницы, с которой вы можете начать.

<html>
<head>
  <title>so-wmp</title>
  <script>

    onload=function() {
      player = document.getElementById("wmp");
      player.URL = "test.mp3";
    };

    function add(text) {
      document.body
        .appendChild(document.createElement("div"))
        .appendChild(document.createTextNode(text));
    };

    function handler(type) {
      var a = arguments;
      add(type +" = "+ PlayStates[a[1]]);
    };

    // http://msdn.microsoft.com/en-us/library/bb249361(VS.85).aspx
    var PlayStates = {
       0: "Undefined", // Windows Media Player is in an undefined state.
       1: "Stopped", // Playback of the current media item is stopped.
       2: "Paused", // Playback of the current media item is paused. When a media item is paused, resuming playback begins from the same location.
       3: "Playing", // The current media item is playing.
       4: "ScanForward", // The current media item is fast forwarding.
       5: "ScanReverse", // The current media item is fast rewinding.
       6: "Buffering", // The current media item is getting additional data from the server.
       7: "Waiting", // Connection is established, but the server is not sending data. Waiting for session to begin.
       8: "MediaEnded", // Media item has completed playback.
       9: "Transitioning", // Preparing new media item.
      10: "Ready", // Ready to begin playing.
      11: "Reconnecting" // Reconnecting to stream.
    };

  </script>
  <script for = "wmp" event = "PlayStateChange(newState)">
    // http://msdn.microsoft.com/en-us/library/bb249362(VS.85).aspx
    handler.call(this, "playstatechange", newState);
  </script>
</head>
<body>
  <div id = "page">
    <object id = "wmp"
       classid = "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"
          type = "application/x-oleobject">
    </object>
  </div>
</body>
</html>

Следует использовать следующий объект WMP (работает в Chrome, FF, Safari)

    objPlayer = document.getElementById("wmp");           
    objPlayer.controls.stop();
    objPlayer.URL = this.url;
    objPlayer.controls.play();

<EMBED id = "wmp" TYPE = "application/x-mplayer2" name = "MediaPlayer" width = "0" height = "0" ShowControls = "0" ShowStatusBar = "0" ShowDisplay = "0" autostart = "0"></EMBED>

Другие вопросы по теме