Toon posts:

Custom controls voor Windows Media Player in Firefox

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem waar ik maar niet uitkom en daarom vraag ik jullie hulp. Searches op google brachten me soms dichtbij maar was he tnet niet... er is bijzonder weinig informatie over te vinden helaas. Het zit namelijk zo: Ik ben bezig met het maken van een online videoplayer die windows media files afspeelt. De standaard controls wil ik echter niet hebben en ga ik voor custom controls. Deze zijn eenvoudig te maken met wat javascript, althans in Internet Explorer dus want in Firefox werkt het tot dusver niet.

Het script wat ik geschreven heb zet automatisch bij een onload een windows media player object neer in de pagina die benaderbaar zou moeten zijn met behulp van javascript. Het document telt een aantal linkjes met ieder een eigen functie: play, pauze, stop, fullscreen, etc. Later ga ik dit uitbreiden maar dat doet even niet terzake.

In Internet Explorer krijg ik de video gewoon te zien, zijn de gewone controls weg en werken de custom controls prima.

In Firefox krijg ik gelukkig ook de video te zien en zijn de standaard controls ook weg. Helaas werken de custom controls niet. Als ik bijvoorbeeld op stop klik krijg ik de volgende foutmelding:

code:
1
TypeError: video.controls has no properties


Heel vreemd, daar horen volgens de documentatie van Microsoft de controls te zitten maar Firefox herkent ze niet. Terwijl video wel een geldig HTMLObjectElement teruggeeft.

Wie o wie weet hier meer over en heeft de goede oplossing?

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
var video;
var debug = true;

function initialize() {
    var html = "<object id=\"videoPlayer\" width=\"352\" height=\"264\" type=\"application/x-oleobject\" classid=\"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6\">";
    html += "<param name=\"uiMode\" value=\"none\" />";
    html += "<param name=\"stretchToFit\" value=\"true\" />";
    html += "<param name=\"enableContextMenu\" value=\"false\" />";
    html += "</object>";
        
    document.getElementById("playerContainer").innerHTML = html;
        
    video = document.getElementById("videoPlayer");
    
    alert(video);
    alert(typeof(video));
    start("test.wmv", true);
}

function start(file, init) {
    video.URL = file;
    
    if (init) {
        setVolume(80);
    }
}

function play() {
    try {
        video.controls.play();
    } catch(e) {
        if (debug) { alert(e); }
    }
}

function pause() {
    try {
        video.controls.pause();
    } catch(e) {
        if (debug) { alert(e); }
    }
}
    
function stop() {
    try {
        video.controls.stop();
    } catch(e) {
        if (debug) { alert(e); }
    }
}

function setVolume(percent) {
    try {
        video.settings.volume = percent;
    } catch(e) {
        if (debug) { alert(e); }
    }
}           

window.onload = function() {
    initialize();
}


HTML:
1
2
3
4
<div id="playerContainer"></div>
<div id="playerControls"><a href="#" onclick="play();return false;">Play</a> | 
<a href="#" onclick="pause();return false;">Pause</a> | 
<a href="#" onclick="stop();return false;">Stop</a></div>

[ Voor 9% gewijzigd door Verwijderd op 29-05-2006 22:11 ]


Verwijderd

Topicstarter
Niemand? :'(

  • lullebakman
  • Registratie: Januari 2005
  • Laatst online: 20-02 18:28
Ik had het mijn Quicktime werkend gekregen, in IE en FF.

Mss moet je "video = document.getElementById("videoPlayer"); " buiten je functies definiëren of nog is in de functies waarin je het nodig hebt.

(Ik weet niet veel van JS, kheb alles geleerd uit source code van andere sites. Het kan dus evengoed bullshit zijn, maar soms helpt het.)

Verwijderd

Topicstarter
Dat maakt helaas niets uit.

document.getElementById("videoPlayer") geeft wel gewoon het object terug en video.settings werkt wel maar video.controls weer niet... heel apart!

Ik denk dat ik het wat dit betreft maar moet opgeven, alhoewel... het moet wel mogelijk zijn want MTV Overdrive werkt wel gewoon met custom controls in firefox... zelfde geldt voor VH1's Vspot (www.vh1.com/vspot/) en Comedy Central's Motherload.