FrameWork de eventos do Windows Media Player

O problema mais básico com o desenvolvedor que ainda está preso ao reprodutor de mídia de janela enquanto há entrega de conteúdo de vídeo é a maneira como seus eventos funcionam.

Os eventos do Windows media player são basicamente os enum. Começando de 0 a 12
Onde

case 0:  "Undefined"

case 1: "Stopped";

case 2: "Paused";
.
.
.
case 11: "Reconnecting"

case 12 : "Last"

e assim por diante. Em muitas ocasiões, o desenvolvedor nem sabe como usá-los.

Então aqui estou. Eu estava no mesmo tipo de dificuldade quando preciso de uma solução para o meu player que estava usando o objeto IE para exibir um player da web no protetor de tela do Windows.

A escolha óbvia era usar o JWplayer. E, inicialmente, obtivemos sucesso. Executar o JWplayer no protetor de tela foi muito divertido, mas havia um problema.

O problema era que, uma vez que o conteúdo do JWplayer é armazenado em cache, ele nunca é executado. Na verdade, ele começou a apresentar um erro de javascript.

Não me lembro qual foi esse erro e até agora não consegui encontrar o motivo por trás dele, mas provavelmente o motivo era o objeto do IE6 que estávamos usando para executar o JWplayer no protetor de tela.

Então, qual foi a solução. Mantendo o código como está, mas usando um player diferente. Para qual player pode ser mais adequado para a instância do IE , o que não surpreende WMV (Windows media player)

Então aqui estou compartilhando o código que escrevi para o meu Windows media player. JWplayer like framework para Windows media player.

código

var WMPlayer={

isFullScreen
: "",

cnt
: 0,

setup
: function (options) {

player
= document.getElementById('contentPlayer');

this.isFullScreen = options.fullScreen;

player
.URl = options.file;

player
.settings.autoStart = options.autostart;

player
.height = options.height;

player
.width = options.width;

if (player.settings.autoStart == true) {
player
.controls.play();
}
if (options.controls == false) {
this.HideControls();
}

},

HideControls: function () {
// player.uiMode = "none";
},

FullScreen: function (bool) {
// player.fullScreen = bool;
},

Pause: function () {
// player.controls.pause();
},

Play: function () {
// player.controls.play();
},

Playing: function () {
// writing code like do we need to make player fullscreen once it start playing
},

Ready: function () {
// DO something when player is ready to play
},

Time: function () {

clearInterval
(playPauseInterval);

// There is not Time Event in WMVPlayer so we need to figure it out by using javascript interval
playPauseInterval
= setInterval(function () {

var playerCurrentDuration = player.controls.currentPosition;

}, 100);
}
}

Não, não o código sozinho. Precisamos configurar eventos principais do wmvplayer para chamar nossos eventos.

object(type='video/x-ms-wmv',id='contentPlaye'r,CLSID:'6BF52A52-394A-11d3-B153-00C04F79FAA6' )
param
(name='wmode',value='trasparent')
param
(name='stretchToFi't,value='true')
param
(name='autoStart',value='false')


script
(type='text/javascript', for=.contentPlayer' ,event='playStateChange').

if (player != null) {

if (player.playState == 3) {

WMPlayer.Playing();

clearInterval(pauseInt);

WMPlayer.Time();

}


if (player.playState == 8) {

clearInterval(pauseIntervalWMPlayer);

cnt = 0;

nextPausecnt = 0

}


if (player.playState == 10) {

WMPlayer.Ready();

}

}

Primeiros passos chamando o método de configuração da instância do WMPlayer.

WMPlayer.setup({
autostart
: true,
file
: URL,
height
: h,
width
: w,
fullScreen
: paramFullScreen,
controls
: false
});