ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
HTML5 ¿ª·¢
Web,MobileWeb & Apps
·¶Ê¥¸Õ
°²²©ÖгÌÔÚÏß
HTML5 Canvas, Audio & Video
ͼÐÎͼÏñºÍ¶àýÌå
Canvas
»­²¼
Canvas
canvasÔªËصĶ¨Ò壺"ËüÊÇÒÀÀµ·Ö±æÂʵÄλͼ»­²¼£¬Äã¿ÉÒÔÔÚcanvasÉÏÃæ»æÖÆÈÎÒâͼ
ÐΣ¬ÉõÖÁ¼ÓÔØÕÕƬ¡£"
ҪʹÓÃcanvas ÔªËØ£¬Ê×ÏȱØÐëÉèÖÃwidth ºÍheight ÊôÐÔ£¬Ò²¾ÍÊÇÎÒÃÇ¿ÉÒÔ»æͼµÄÇøÓò
µÄ´óС¡£
°²²©ÖгÌÔÚÏß
<canvaswidth="100"height="100">ÕâÀï·ÅÖúó±¸ÐÅÏ¢£¬Èç¹ûä¯ÀÀÆ÷²»Ö§³Öcanvas»áÏÔʾ</canvas>HTML
4/45
2DÉÏÏÂÎÄ
°²²©ÖгÌÔÚÏß
»æͼǰÐèÒªµ÷ÓÃgetContext()·½·¨²¢´«ÈëÉÏÏÂÎÄÃû×Ö£¬À´È¡µÃ»æͼÉÏÏÂÎĶÔÏóµÄÒý

´«Èë"2d"¾Í¿ÉÒÔÈ¡µÃ2DÉÏÏÂÎĶÔÏó¡£
2DÉÏÏÂÎĵÄ×ø±ê¿ªÊ¼ÓÚ<canvas>ÔªËصÄ×óÉϽǣ¬Ô­µã×ø±êÊÇ(0, 0)¡£xÖµÔ½´ó±íʾԽ
¿¿ÓÒ£¬yÖµÔ½´ó±íʾԽ¿¿Ï¡£
¡¤
¡¤
¡¤
vardrawing=document.getElementById("canvas-area");
//È·¶¨ä¯ÀÀÆ÷ÊÇ·ñÖ§³Ö<canvas>ÔªËØ
if(drawing.getContext){
varcontext=drawing.getContext("2d");
...
}
JAVASCRIPT
5/45
Ìî³äºÍÃè±ß
2DÉÏÏÂÎÄÁ½ÖÖ»ù±¾²Ù×÷ÊÇÌî³äºÍÃè±ß
°²²©ÖгÌÔÚÏß
Ìî³ä£¬¾ÍÊÇÓÃÖ¸¶¨µÄÑùʽ£¨ÑÕÉ«£¬½¥±ä»òÕßͼÐΣ©Ìî³äͼÐΣ»
Ãè±ß£¬¾ÍÊÇÖ»ÔÚͼÐεıßÔµ»­Ïß¡£
¡¤
¡¤
6/45
fillStyleºÍstrokeStyle
Ìî³ä²Ù×÷µÄ½á¹ûÈ¡¾öÓÚfillStyle ÊôÐÔ£¬¶øÃè±ß²Ù×÷µÄ½á¹ûÈ¡¾öÓÚstrokeStyle ÊôÐÔ¡£
°²²©ÖгÌÔÚÏß
ÏÂÃæµÄ´úÂ뽫strokeStyle ÉèÖÃΪred(CSSÖеÄÑÕÉ«Ãû)£¬½«fillStyle ÉèÖÃΪ
#0000ff(À¶É«)¡£
Á½¸öÊôÐÔÈç¹û²»ÉèÖõĻ°£¬Ä¬ÈÏÖµ¶¼ÊÇ"#000000"¡£
Èç¹û°ÑËüÃÇÖ¸¶¨Îª±íʾÑÕÉ«µÄ×Ö·û´®Öµ£¬¿ÉÒÔʹÓÃCSSÖÐÖ¸¶¨ÑÕÉ«µÄÈκθñʽ£¬°ü
À¨ÑÕÉ«Ãû£¬Ê®Áù½øÖÆÂ룬rgb£¬rgbaµÈ¡£
¡¤
¡¤
¡¤
vardrawing=document.getElementById("canvas-area");
//È·¶¨ä¯ÀÀÆ÷ÊÇ·ñÖ§³Ö<canvas>ÔªËØ
if(drawing.getContext){
varcontext=drawing.getContext("2d");
context.fillStyle="#0000ff";
context.strokeStyle="red";
}
JAVASCRIPT
7/45
»æÖƾØÐÎ
¾ØÐÎÊÇΨһһÖÖ¿ÉÒÔÖ±½ÓÔÚ2DÉÏÏÂÎÄÖлæÖƵÄÐÎ×´¡£Óë¾ØÐÎÓйصķ½·¨°ü
À¨£ºfillRect(), strokeRect()ºÍclearRect()
ÕâÈý¸ö·½·¨¶¼Äܹ»½ÓÊÕËĸö²ÎÊý£º¾ØÐεÄx×ø±ê£¬¾ØÐεÄy×ø±ê£¬¾ØÐοí¶ÈºÍ¾ØÐθß
¶È¡£µ¥Î»¶¼ÊÇÏñËØ¡£
°²²©ÖгÌÔÚÏß
varcontext=document.getElementById("canvas-area").getContext("2d");
context.fillRect(x,y,width,height);
context.strokeRect(x,y,width,height);
context.clearRect(x,y,width,height);
JAVASCRIPT
8/45
fillRect()
fillRect() ·½·¨ÔÚ»­²¼ÉÏ»æÖƵľØÐλáÌî³äÖ¸¶¨µÄÑÕÉ«¡£Ìî³äµÄÑÕɫͨ¹ýfillStyle ÊôÐÔÖ¸
¶¨¡£
°²²©ÖгÌÔÚÏß
//»æÖƺìÉ«¾ØÐÎ
fillrect_context.fillStyle="#ff0000";
fillrect_context.fillRect(50,25,200,100);
//»æÖÆ°ë͸Ã÷µÄÀ¶É«¾ØÐÎ
fillrect_context.fillStyle="rgba(0,0,255,0.5)";
fillrect_context.fillRect(150,75,200,100);
JAVASCRIPT
9/45
strokeRect()
strokeRect() ·½·¨ÔÚ»­²¼ÉÏ»æÖƵľØÐλáʹÓÃÖ¸¶¨µÄÑÕÉ«Ãè±ß¡£Ãè±ßÑÕɫͨ¹ý
strokeStyle ÊôÐÔÖ¸¶¨¡£
°²²©ÖгÌÔÚÏß
//ºìÉ«Ãè±ß¾ØÐÎ
strokerect_context.strokeStyle="#ff0000";
strokerect_context.strokeRect(50,25,200,100);
//°ë͸Ã÷µÄÀ¶É«Ãè±ß¾ØÐÎ
strokerect_context.strokeStyle="rgba(0,0,255,0.5)";
strokerect_context.strokeRect(150,75,200,100);
JAVASCRIPT
10/45
clearRect()
clearRect() ·½·¨ÓÃÓÚÇå³ý»­²¼ÉϵľØÐÎÇøÓò¡£Í¨¹ý»æÖÆÐÎ×´È»ºóÔÙÇå³ýÖ¸¶¨µÄÇøÓò£¬
¾Í¿ÉÒÔÉú³ÉÓÐÒâ˼µÄЧ¹û£¬±ÈÈç°Ñij¸öÐÎ×´ÇеôÒ»¿é¡£
°²²©ÖгÌÔÚÏß
//»æÖƺìÉ«¾ØÐÎ
clearrect_context.fillStyle="#ff0000";
clearrect_context.fillRect(50,25,200,100);
//»æÖÆ°ë͸Ã÷µÄÀ¶É«¾ØÐÎ
clearrect_context.fillStyle="rgba(0,0,255,0.5)";
clearrect_context.fillRect(150,75,200,100);
//ÔÚÁ½¸ö¾ØÐÎÖصþµÄÇøÓòÇå³ýµôÒ»¸öС¾ØÐÎ
clearrect_context.clearRect(170,95,20,20)£»
JAVASCRIPT
11/45
»æÖÆ·¾¶
2D»æÖÆÉÏÏÂÎÄÖ§³ÖºÜ¶àÔÚ»­²¼ÉÏ»æÖÆ·¾¶µÄ·½·¨£¬Í¨¹ý·¾¶¿ÉÒÔ´´Ôì³ö¸´ÔÓµÄÐÎ×´ºÍ
ÏßÌõ¡£
Òª»æÖÆ·¾¶Ê×ÏȱØÐëµ÷ÓÃbeginPath() ·½·¨£¬ ±íʾҪ¿ªÊ¼»æÖÆз¾¶£¬È»ºóÔÙµ÷ÓÃÏà
Ó¦µÄ»æÖÆ·¾¶·½·¨¡£
°²²©ÖгÌÔÚÏß
moveTo(x, y): ½«»æͼÓαêÒƶ¯µ½(x,y), ²»»­Ïß¡£
lineTo(x, y): ´ÓÉÏÒ»µã»æÖÆÒ»ÌõÖ±Ïߣ¬µ½(x,y)Ϊֹ¡£
arc(x, y, radius, startAngle, endAngle, counterlockwise): ÒÔ(x, y)ΪԲÐÄ»æÖÆÒ»Ìõ
»¡Ïߣ¬»¡Ï߰뾶Ϊradius, ÆðʼºÍ½áÊøµÄ½Ç¶È·Ö±ðΪstartAngleºÍendAngle¡£×îºó
Ò»¸ö²ÎÊý±íʾstartAngleºÍendAngleÊÇ·ñ°´ÄæʱÕë¼ÆË㣬ֵΪfalse±íʾ°´Ë³Ê±Õë·½
Ïò¼ÆËã¡£
arcTo(x1, y1, x2, y2, radius): ±íʾ´ÓÉÏÒ»µã¿ªÊ¼»æÖÆ»¡Ïߣ¬µ½(x2,y2)Ϊֹ£¬²¢ÇÒÒÔ
¸ø¶¨µÄ°ë¾¶´©¹ý(x1,y1)¡£
¡¤
¡¤
¡¤
¡¤
12/45
°²²©ÖгÌÔÚÏß
//¿ªÊ¼Â·¾¶
pathcanvas_context.beginPath();
//»æÖÆÍâÔ²
pathcanvas_context.arc(100,100,75,0,2*Math.PI,false);
//»æÖÆÄÚÔ²
pathcanvas_context.moveTo(170,100);
pathcanvas_context.arc(100,100,70,0,2*Math.PI,false);
//»æÖÆ·ÖÕë
pathcanvas_context.moveTo(100,100);
pathcanvas_context.lineTo(100,35);
//»æÖÆʱÕë
pathcanvas_context.moveTo(100,100);
pathcanvas_context.lineTo(55,100);
//Ãè±ß·¾¶
pathcanvas_context.stroke();
JAVASCRIPT
13/45
°²²©ÖгÌÔÚÏß 14/45
»æÖÆÎı¾
Ä£ÄâÁËÔÚÍøÒ³ÖÐÕý³£ÏÔʾÎı¾£¬fillText()·½·¨µÄÈý¸öÖ÷Òª²ÎÊý£ºÒª»æÖƵÄ×Ö·û´®£¬x×ø
±êºÍy×ø±ê¡£
fillTextÒÔÏÂÃæÈý¸öÊôÐÔΪ»ù´¡£º
°²²©ÖгÌÔÚÏß
context.font="bold12pxsans-serif";
context.textAlign="right";
context.textBaseline="bottom";
context.fillText("x",248,43);
context.fillText("y",58,165);
JAVASCRIPT
font: ¿ÉÒÔÊÇCSS×ÖÌå¹æÔòÖеÄÈκÎÖµ¡£
textAlign£º¿ØÖÆÎı¾µÄ¶ÔÆ뷽ʽ£¨ºÍCSSµÄtext-align²»ÍêÈ«Ïàͬ£©¡£start, end,
left, rightºÍcenter¡£
textBaseline: ¿ØÖÆÎı¾Ïà¶ÔÓÚÆðµãµÄλÖ᣿ÉÒÔÈ¡Öµ£ºtop, hanging, middle,
alphabetic, ideographicºÍbottom¡£
¡¤
¡¤
¡¤
15/45
Canvas»æÖÆÒ»¸ö×ø±êϵ
°²²©ÖгÌÔÚÏß 16/45
񄯯
ͨ¹ýÉÏÏÂÎĵı仯£¬¿ÉÒÔ°Ñ´¦ÀíºóµÄͼÏñ»æÖƵ½»­²¼ÉÏ¡£2D»æÖÆÉÏÏÂÎÄÖ§³Ö¸÷ÖÖ»ù±¾
µÄ»æÖƱ任¡£
°²²©ÖгÌÔÚÏß
rotate(angle): ΧÈÆÔ­µãÐýתͼÏñangle½Ç¶È
scale(scaleX, scaleY): Ëõ·ÅͼÏñ£¬ÔÚx·½Ïò³ËÒÔscaleX, ÔÚy·½Ïò³ËÒÔscaleY¡£scaleX
ºÍscaleYµÄĬÈÏÖµ¶¼ÊÇ1.0¡£
translate(x,y): ½«×ø±êÔ­µãÒƶ¯µ½(x,y)¡£Ö´ÐÐÕâ¸ö±ä»»Ö®ºó£¬×ø±ê(0, 0)»á±ä³É֮ǰ
ÓÉ(x,y)±íʾµÄµã¡£
¡¤
¡¤
¡¤
17/45
񄯯 - translate
ÔÚÇ°Ãæ»æÖÆÃëÕëµÄÀý×ÓÖУ¬Èç¹ûÎÒÃÇ°ÑÔ­µã±ä»»³É±íÅ̵ÄÖÐÐÄ£¬ÄÇôÔÙ»æÖƱíÕë¾ÍÈÝ
Ò׶àÁË¡£
°²²©ÖгÌÔÚÏß
context.beginPath();
context.arc(100,100,75,0,2*Math.PI,false);
context.moveTo(170,100);
context.arc(100,100,70,0,2*Math.PI,false);
//±ä»»Ô­µã
context.translate(100,100);
context.moveTo(0,0);
context.lineTo(0,-65);
context.moveTo(0,0);
context.lineTo(-40,0);
context.stroke();
JAVASCRIPT
18/45
񄯯 - rotate
°²²©ÖгÌÔÚÏß
//±ä»»Ô­µã
context.translate(100,100);
//Ðýת±íÕë
context.rotate(1);
context.moveTo(0,0);
context.lineTo(0,-65);
context.moveTo(0,0);
context.lineTo(-40,0);
context.stroke();
JAVASCRIPT
19/45
ÑÕÉ«½¥±ä
½¥±äÊÇÁ½ÖÖ»òÕ߸ü¶àÑÕÉ«µÄƽ»¬¹ý¶É¡£canvasµÄ»æͼÉÏÏÂÎÄÖ§³ÖÁ½ÖÖÀàÐ͵Ľ¥±ä£º
°²²©ÖгÌÔÚÏß
createLinearGradient(x0, y0, x1, y1)ÑØ×ÅÖ±Ïß´Ó(x0, y0)ÖÁ(x1, y1)»æÖƽ¥±ä¡£
createRadiaGradient(x0, y0, r0, x1, y1, r1)ÑØ×ÅÁ½¸öÔ²Ö®¼äµÄ׶Ãæ»æÖƽ¥±ä¡£Ç°Èý
¸ö²ÎÊý´ú±í¿ªÊ¼µÄÔ²£¬Ô²ÐÄÊÇ(x0, y0)£¬°ë¾¶ÊÇr0; ×îºóÈý¸ö²ÎÊý´ú±í½áÊøµÄÔ²¡£
¡¤
¡¤
varmy_gradient=context.createLinearGradient(0,0,500,0);
my_gradient.addColorStop(0,"black");
my_gradient.addColorStop(1,"white");
context.fillStyle=my_gradient;
context.fillRect(0,0,500,300);
JAVASCRIPT
20/45
ÏßÐÔ½¥±ädemo
°²²©ÖгÌÔÚÏß 21/45
Gradient½¥±äDemo
°²²©ÖгÌÔÚÏß 22/45
»æÖÆͼÏñ
ʹÓÃdrawImage()¿ÉÒÔ°ÑÒ»·ùͼÏñ»æÖƵ½»­²¼ÉÏ£¬¸ù¾ÝÆÚÍûµÄ×îÖÕ½á¹ûµÄ²»Í¬£¬
drawImage()ÌṩÁËÈýÖÖ»æÖÆͼƬµÄ·½·¨£º
°²²©ÖгÌÔÚÏß
drawImage( image, dx, dy )½ÓÊÜÒ»¸öͼƬ£¬²¢½«Ö®»­µ½canvasÖС£¸ø³öµÄ×ø±ê(dx,
dy)´ú±íͼƬµÄ×óÉϽǡ£
drawImage( image, dx, dy, dw, dh )½ÓÊÜÒ»¸öͼƬ£¬½«ÆäËõ·ÅΪ¿í¶Èdw£¬¸ß¶È
dh£¬È»ºó°ÑËü»­µ½canvasÉϵÄ(dx, dy)λÖᣲ¢½«Ö®»­µ½canvasÖС£
drawImage( image, sx, sy, sw, sh, dx, dy, dw, dh )½ÓÊÜÒ»¸öͼƬ£¬Í¨¹ý²ÎÊý( sx,
sy, sw, sh )Ö¸¶¨Í¼Æ¬µÄ¼ô²ÃµÄ·¶Î§£¬Ëõ·Åµ½(dw, dh)µÄ´óС£¬ ×îºó°ÑËü»­µ½canvas
ÉϵÄ(dx, dy)λÖá£
¡¤
¡¤
¡¤
varandroid=newImage();
android.src=/slideshow/multimedia-22164861/22164861/"images/android.png";
android.onload=function(){
for(varx=0,y=0;x<800&y<500;x+=50,y+=30){
context.drawImage(android,x,y,100,117);
}
}
JAVASCRIPT
23/45
ͼƬdemo
°²²©ÖгÌÔÚÏß 24/45
canvasµ¼³ÉͼÏñ
°²²©ÖгÌÔÚÏß
varimgURI=imagedrawing.toDataURL("image/png");
varimage=document.createElement("img");
image.src=/slideshow/multimedia-22164861/22164861/imgURI;
document.getElementById("canvas-images-export").appendChild(image);
JAVASCRIPT
25/45
<Video> & <Audio>
²»ÒÀÀµ²å¼þ¾ÍÄÜǶÈëÒôƵºÍÊÓƵÄÚÈÝ
ÊÓƵÈÝÆ÷
°²²©ÖгÌÔÚÏß
MPEG-4
Flash ÊÓƵ
Ogg
WebM
ÒôƵÊÓƵ½»´í
¡¤
¡¤
¡¤
¡¤
¡¤
27/45
ÊÓƵ±à½âÂëÆ÷
°²²©ÖгÌÔÚÏß
H.264
Theora
VP8
¡¤
¡¤
¡¤
28/45
ÒôƵ±à½âÂëÆ÷
°²²©ÖгÌÔÚÏß
MP3
AAC
VP8
Vorbis
¡¤
¡¤
¡¤
¡¤
29/45
MPEG4 ±àÂë
°²²©ÖгÌÔÚÏß
HandBrake¡¤
30/45
Ogg ±àÂë
°²²©ÖгÌÔÚÏß
Firefogg¡¤
31/45
WebM ±àÂë
°²²©ÖгÌÔÚÏß
Firefogg
ffmpeg
¡¤
¡¤
32/45
»ù±¾Ó÷¨
°²²©ÖгÌÔÚÏß
<videoid="myMovie"src=/slideshow/multimedia-22164861/22164861/"images/sample.m4v"preloadcontrolsautoplay>ÊÓƵ²¥·ÅÆ÷²»¿ÉÓá£</video>
<audioid="myAudio"src="images/song.mp3"></audio>
HTML
ÖÁÉÙÒªÔÚ±êÇ©Öаüº¬srcÊôÐÔ£¬Ö¸ÏòÒª¼ÓÔصÄýÌåÎļþ£»
¿ÉÒÔÉèÖÃwidthºÍheightÊôÐÔÒÔÖ¸¶¨ÊÓƵ²¥·ÅÆ÷µÄ´óС£»
Èç¹û±êÇ©ÖÐÓÐcontrolsÊôÐÔ£¬ÔòÒâζ×Åä¯ÀÀÆ÷Ó¦¸ÃÏÔʾUI¿Ø¼þ£¬ÒÔ±ãÓû§Ö±½Ó²Ù×÷
ýÌ壻
ÓÃÓÚ¿ªÊ¼ºÍ½áÊø±êÇ©Ö®¼äµÄÈκÎÄÚÈݶ¼½«×÷Ϊºó±¸ÄÚÈÝ£¬ÔÚä¯ÀÀÆ÷²»Ö§³ÖÕâÁ½¸öý
ÌåÔªËصÄÇé¿öÏÂÏÔʾ¡£
¡¤
¡¤
¡¤
¡¤
¡¤
33/45
Ö¸¶¨²»Í¬µÄýÌåÀ´Ô´
ÒòΪ²¢·ÇËùÓеÄä¯ÀÀÆ÷¶¼Ö§³ÖËùÓеÄýÌå¸ñʽ£¬ËùÒÔ¿ÉÒÔÖ¸¶¨¶à¸ö²»Í¬µÄýÌåÀ´Ô´¡£
ÏñÏÂÃæÕâÑùʹÓÃÒ»¸ö»ò¶à¸ö<source>ÔªËØ¡£
°²²©ÖгÌÔÚÏß
<videoid="videoShowcase"width="848"height="352"poster="/images/poster.jpg"autobuffer="autobuf
<sourcesrc=/slideshow/multimedia-22164861/22164861/"/images/demo.m4v"type="video/mp4;codecs="avc1.42E01E,mp4a.40.2"">
<sourcesrc="/images/demo.webm"type="video/webm;codecs="vp8,vorbis"">
</video>
HTML
34/45
Ö÷ÒªÊôÐÔ
ÊôÐÔ ÊýÖµÀàÐÍ ËµÃ÷
autoplay ²¼¶ûÖµ È¡µÃ»òÉèÖÃautoplay±êÖ¾
controls ²¼¶ûÖµ È¡µÃ»òÕßÉèÖÃcontrolsÊôÐÔ£¬ÓÃÓÚÒþ²Ø»òÕßÏÔʾä¯ÀÀÆ÷ÄÚÖõĿؼþ
duration ¸¡µãÊý ýÌåµÄ×ܲ¥·Åʱ¼ä£¨ÃëÊý£©
ended ²¼¶ûÖµ ±íʾýÌåÊÇ·ñ²¥·ÅÍê³É
muted ²¼¶ûÖµ È¡µÃ»òÉèÖÃýÌåÎļþÊÇ·ñ¾²Òô
paused ²¼¶ûÖµ ±íʾ²¥·ÅÆ÷ÊÇ·ñÔÝÍ£
readyState ²¼¶ûÖµ ±íʾýÌåÎļþÊÇ·ñÒѾ­¾ÍÐ÷
volume ¸¡µãÊý È¡µÃ»òÉèÖõ±Ç°ÒôÁ¿
°²²©ÖгÌÔÚÏß 35/45
×Ô¶¨ÒåýÌå²¥·ÅÆ÷
ʹÓÃvideoºÍaudioµÄplayºÍpause·½·¨£¬¿ÉÒÔÊÖ¹¤¿ØÖÆýÌåÎļþµÄ²¥·Å¡£×éºÏʹÓÃÊô
ÐÔ£¬Ê¼þºÍÕâÁ½¸ö·½·¨£¬ºÜÈÝ´´½¨Ò»¸ö×Ô¶¨ÒåµÄýÌå²¥·ÅÆ÷
°²²©ÖгÌÔÚÏß
<divclass="mediaplayer">
<divclass="video">
<videoid="player"src=/slideshow/multimedia-22164861/22164861/"../images/demo.m4v"poster="mymovie.jpg"
width="300"height="200">
Videoplayernotavailable.
</video>
</div>
<divclass="controls">
<inputtype="button"value="Play"id="video-btn">
<spanid="curtime">0</span>/<spanid="duration">0
</div>
</div>
HTML
36/45
¼òµ¥ÏÔʾºÍ¿ØÖÆ
°²²©ÖгÌÔÚÏß
window.onload = function(){
var player = document.getElementById("player");
var btn = document.getElementById("video-btn");
var curtime = document.getElementById("curtime");
var duration = document.getElementById("duration");
duration.innerHTML = player.duration;
EventUtil.addHandler(btn, "click", function(event){
if (player.paused){
player.play();
btn.value = "Pause";
} else {
player.pause();
btn.value = "Play";
}
});
setInterval(function(){
curtime.innerHTML = player.currentTime;
}, 250);
};
HTML
37/45
ʾÀý£º¼òµ¥µÄǶÈëÒôƵ
°²²©ÖгÌÔÚÏß
<audioid="drums"controls>
<sourcesrc=/slideshow/multimedia-22164861/22164861/"sounds/ogg/drums.ogg"type="audio/ogg">
<sourcesrc="sounds/mp3/drums.mp3"type="audio/mpeg">
<ahref="sounds/mp3/drums.mp3">ÏÂÔØ drums.mp3
</audio>
HTML
38/45
ʾÀý£º¼òµ¥µÄǶÈëÊÓƵ
°²²©ÖгÌÔÚÏß
<videocontrols>
<sourcesrc=/slideshow/multimedia-22164861/22164861/"video/h264/01_blur.mp4">
<sourcesrc="video/theora/01_blur.ogv">
<sourcesrc="video/webm/01_blur.webm">
</video>
HTML
39/45
Apple µÄ<video> Demo
°²²©ÖгÌÔÚÏß
http://www.apple.com/html5/showcase/video/
40/45
Apple µÄ<audio> Demo
°²²©ÖгÌÔÚÏß
http://www.apple.com/html5/showcase/audio//
41/45
RGraph
RGraph ÊÇÓÃJavaScriptдµÄHTML5 ͼ±í¿â£¬Ê¹ÓÃHTML5 canvas½øÐлæÖÆ£¬²¢ÇÒÖ§³Ö
³¬¹ý20ÖÖ²»Í¬µÄͼ±íÀàÐÍ¡£
ÔÚä¯ÀÀÆ÷ÖÐʹÓÃJavaScript»æÖÆͼ±í, Òâζ×ÅÒ³Ãæ´óС¸üС£¬Ëٶȸü¿ìºÍ·þÎñÆ÷¸ºÔظü
µÍ¡£
°²²©ÖгÌÔÚÏß 42/45
RGraph¼òµ¥Ò×ÓÃ
°²²©ÖгÌÔÚÏß
<scripttype="text/javascript"src=/slideshow/multimedia-22164861/22164861/"../libraries/RGraph.common.core.js"></script>
<scripttype="text/javascript"src="../libraries/RGraph.bar.js"></script>
...
<canvasid="cvs"width="600"height="250">[Nocanvassupport]</canvas>
<script>
window .onload=function()
{
varbar=newRGraph.Bar('cvs',[5,4,1,6,8,5,3]);
bar .Set('chart.labels',['Monday','Tuesday','Wednesday','Thursda
bar .Draw();
}
</script>
JAVASCRIPT
43/45
À©Õ¹ÔĶÁ
°²²©ÖгÌÔÚÏß
RGraph ͼ±í¿â
W3C: HTML Canvas 2D Context
Wikipedia: Canvas element
W3C Spec: Audio Element
W3C Spec: Video Element
W3C Spec: Media Elements
WhatWG: Timed Track API
Mozilla Wiki: Audio Data API
¡¤
¡¤
¡¤
¡¤
¡¤
¡¤
¡¤
¡¤
44/45
<Thank you!>
Feel free to contact me if you have any question.
΢²© @·¶Ê¥¸Õ
²©¿Í www.tfan.org
github github.com/princetoad

More Related Content

Multimedia