root / trunk / web / dojo / dojox / av / widget / Status.js @ 11
History | View | Annotate | Download (2.83 KB)
| 1 | 9 | andrej.cim | /*
|
|---|---|---|---|
| 2 | Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
||
| 3 | Available via Academic Free License >= 2.1 OR the modified BSD license.
|
||
| 4 | see: http://dojotoolkit.org/license for details
|
||
| 5 | */
|
||
| 6 | |||
| 7 | |||
| 8 | if(!dojo._hasResource["dojox.av.widget.Status"]){ |
||
| 9 | dojo._hasResource["dojox.av.widget.Status"]=true; |
||
| 10 | dojo.provide("dojox.av.widget.Status");
|
||
| 11 | dojo.require("dijit._Widget");
|
||
| 12 | dojo.require("dijit._Templated");
|
||
| 13 | dojo.declare("dojox.av.widget.Status",[dijit._Widget,dijit._Templated],{templateString:dojo.cache("dojox.av.widget","resources/Status.html","<table class=\"Status\">\n <tr>\n <td class=\"Time\"><span dojoAttachPoint=\"timeNode\">0.00</span></td>\n <td class=\"Status\"><div dojoAttachPoint=\"titleNode\">Loading...</div></td>\n <td class=\"Duration\"><span dojoAttachPoint=\"durNode\">0.00</span></td>\n </tr>\n</table>\n"),postCreate:function(){ |
||
| 14 | this.titleNode=dojo.query(".Status",this.domNode); |
||
| 15 | this.durNode=dojo.query(".Duration",this.domNode); |
||
| 16 | this.timeNode=dojo.query(".Time",this.domNode); |
||
| 17 | },setMedia:function(_1){ |
||
| 18 | this.media=_1;
|
||
| 19 | dojo.connect(this.media,"onMetaData",this,function(_2){ |
||
| 20 | this.duration=_2.duration;
|
||
| 21 | this.durNode.innerHTML=this.toSeconds(this.duration); |
||
| 22 | }); |
||
| 23 | dojo.connect(this.media,"onPosition",this,function(_3){ |
||
| 24 | }); |
||
| 25 | var _4=["onMetaData","onPosition","onStart","onBuffer","onPlay","onPause","onStop","onEnd","onError","onLoad"]; |
||
| 26 | dojo.forEach(_4,function(c){
|
||
| 27 | dojo.connect(this.media,c,this,c); |
||
| 28 | },this);
|
||
| 29 | },onMetaData:function(_5){ |
||
| 30 | this.duration=_5.duration;
|
||
| 31 | this.durNode.innerHTML=this.toSeconds(this.duration); |
||
| 32 | if(this.media.title){ |
||
| 33 | this.title=this.media.title; |
||
| 34 | }else{
|
||
| 35 | var a=this.media.mediaUrl.split("/"); |
||
| 36 | var b=a[a.length-1].split(".")[0]; |
||
| 37 | this.title=b;
|
||
| 38 | } |
||
| 39 | },onBuffer:function(_6){ |
||
| 40 | this.isBuffering=_6;
|
||
| 41 | console.warn("status onBuffer",this.isBuffering); |
||
| 42 | if(this.isBuffering){ |
||
| 43 | this.setStatus("buffering..."); |
||
| 44 | }else{
|
||
| 45 | this.setStatus("Playing"); |
||
| 46 | } |
||
| 47 | },onPosition:function(_7){ |
||
| 48 | },onStart:function(){ |
||
| 49 | this.setStatus("Starting"); |
||
| 50 | },onPlay:function(){ |
||
| 51 | this.setStatus("Playing"); |
||
| 52 | },onPause:function(){ |
||
| 53 | this.setStatus("Paused"); |
||
| 54 | },onStop:function(){ |
||
| 55 | this.setStatus("Stopped"); |
||
| 56 | },onEnd:function(){ |
||
| 57 | this.setStatus("Stopped"); |
||
| 58 | },onError:function(_8){ |
||
| 59 | var _9=_8.info.code;
|
||
| 60 | if(_9=="NetStream.Play.StreamNotFound"){ |
||
| 61 | _9="Stream Not Found";
|
||
| 62 | } |
||
| 63 | this.setStatus("ERROR: "+_9,true); |
||
| 64 | },onLoad:function(){ |
||
| 65 | this.setStatus("Loading..."); |
||
| 66 | },setStatus:function(_a,_b){ |
||
| 67 | if(_b){
|
||
| 68 | dojo.addClass(this.titleNode,"statusError"); |
||
| 69 | }else{
|
||
| 70 | dojo.removeClass(this.titleNode,"statusError"); |
||
| 71 | if(this.isBuffering){ |
||
| 72 | _a="buffering...";
|
||
| 73 | } |
||
| 74 | } |
||
| 75 | this.titleNode.innerHTML="<span class=\"statusTitle\">"+this.title+"</span> <span class=\"statusInfo\">"+_a+"</span>"; |
||
| 76 | },toSeconds:function(_c){ |
||
| 77 | var ts=_c.toString();
|
||
| 78 | if(ts.indexOf(".")<0){ |
||
| 79 | ts+=".00";
|
||
| 80 | }else{
|
||
| 81 | if(ts.length-ts.indexOf(".")==2){ |
||
| 82 | ts+="0";
|
||
| 83 | }else{
|
||
| 84 | if(ts.length-ts.indexOf(".")>2){ |
||
| 85 | ts=ts.substring(0,ts.indexOf(".")+3); |
||
| 86 | } |
||
| 87 | } |
||
| 88 | } |
||
| 89 | return ts;
|
||
| 90 | }}); |
||
| 91 | } |