Я нашел хорошую статью о использовании WMP с Firefox на MSDN.
Основываясь на статье MSDN и после некоторых проб и ошибок, я обнаружил, что использование JavaScript лучше, чем использование условных комментариев или вложенных тегов «EMBED / OBJECT».
Я создал функцию JS, которая генерирует объект WMP на основе заданных аргументов:
<script type="text/javascript">
function generateWindowsMediaPlayer(
holderId, // String
height, // Number
width, // Number
videoUrl // String
// you can declare more arguments for more flexibility
) {
var holder = document.getElementById(holderId);
var player = '<object ';
player += 'height="' + height.toString() + '" ';
player += 'width="' + width.toString() + '" ';
videoUrl = encodeURI(videoUrl); // Encode for special characters
if (navigator.userAgent.indexOf("MSIE") < 0) {
// Chrome, Firefox, Opera, Safari
//player += 'type="application/x-ms-wmp" '; //Old Edition
player += 'type="video/x-ms-wmp" '; //New Edition, suggested by MNRSullivan (Read Comments)
player += 'data="' + videoUrl + '" >';
}
else {
// Internet Explorer
player += 'classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" >';
player += '<param name="url" value="' + videoUrl + '" />';
}
player += '<param name="autoStart" value="false" />';
player += '<param name="playCount" value="1" />';
player += '</object>';
holder.innerHTML = player;
}
</script>
Затем я использовал эту функцию, написав несколько разметок и встроенных JS, таких как:
<div id='wmpHolder'></div>
<script type="text/javascript">
window.addEventListener('load', generateWindowsMediaPlayer('wmpHolder', 240, 320, 'http://mysite.com/path/video.ext'));
</script>
Вы можете использовать jQuery.ready вместо событие загрузки окна , чтобы сделать коды более обратно совместимыми и кросс-браузерными .
Я тестировал коды через IE 9-10, Chrome 27, Firefox 21, Opera 12 и Safari 5, в Windows 7/8.