代码如下:- e) g$ k [! j9 c
<!doctype html>/ ~9 o. t9 {. }7 D5 a5 I
<html lang=en>
* v, x( ?; ^% h$ k( R<head>
3 x& ~3 W6 W7 n9 N: x" E<meta charset=utf-8>, K: o- p, q1 y" V! o
<title>html audio api</title>) Y6 F+ e: T6 O+ S
<link rel=stylesheet href=./style/main.css />
: U6 |4 z6 L6 w& `' J<script src=./script/audio-controls.js></script>
2 k* e% E* T& f5 {8 m, }7 v; p</head>7 O* B: P, n; M; c4 p1 Q
<body>! j% b# h; h s& s; m
<header>" p: T7 O3 v+ h1 w; a7 k' n& j+ E
<h1>html5 audio api</h1>8 \* ^" s0 e# h% @9 p! j
<p>html5 audio api demo by <a href=<a href=> target=_blank>learnshare</a>.</p>
" @ V m8 Y2 |1 q$ K* r# ~1 _/ b<p>
7 I; H u" d0 F* u4 blast update @2013-04-23 20:40:00% C2 Z' r% }& U0 n6 D" H0 g
+ add info table9 b8 o4 \) l# D# ]& V) g, P
update @2013-04-22 14:54:006 L/ @" Y$ g! B. `# h: \# \' B
+ add dom events
9 H! C8 c: k0 w) Z8 L9 Gupdate @2013-04-22 12:47:00
" p. ]* f9 [( x! Q1 `7 A+ add getcurrentsrc button
8 r$ r& b1 v7 K</p>
9 F2 ~) \* b4 j r<p>
4 D% _' v' M& n* K: \9 nview code on <a href=<a href=>
3 D* u( Z# G% p7 H/ j; F> target=_blank>learnshare.github.io</a>. # q6 }& a9 c& E. v6 O" m5 q
api reference: <a href=<a href=> target=_blank>htmlmediaelement</a> and <a href=<a href=> target=_blank>audio/video dom references</a>
7 H# f( K1 h1 j6 x" ?- O/ ~</p>
6 T! r5 H+ S8 T8 g</header>8 h6 I: D$ n' }2 D# X3 y
<article>* p0 |" }0 G4 k1 c5 u7 g
<section>* w: |7 }! q; c& m- \
<h2>audio element</h2>
+ @: C& e6 Z1 {9 p# Y<audio id=audio src=./media/music1.mp3 controls=controls></audio>' c& `: K6 C; t8 d
<p>open the <strong>developer tool</strong> to view console logs.</p>3 S( i( O/ C9 Z" m) a: z
</section>
) q3 R/ K$ o9 m! i<section>
! M+ W, ]- X2 y<h2>controls</h2>
# K( K+ O( ^3 F7 o: _) C<button id=play>play</button>
3 b8 \3 f+ V6 F% u- l/ N3 W R<button id=pause>pause</button>
* m# U, _7 p2 ?) Q" x<button id=get_paused>getpaused</button># X2 T) n# u! T' B
<button id=get_ended>getended</button>6 L" [+ I2 ^( w# V! u1 I* T% B1 }
( F. \7 x* T R! T& e. K
<button id=volume_down>volume-</button>% _& J+ \5 P) j$ j3 P* D, H z
<button id=volume_up>volume+</button>
, {2 b7 O3 w* t% D. P$ E1 T: \<button id=get_volume>getvolume</button>6 ~6 n2 D& B5 L8 H
Y8 X6 D3 L# X" V
<button id=get_src>getsrc</button>* u! A0 p d% g! k
<button id=play_music1>playmusic1</button>! @0 Z6 l2 M7 J0 @) c& z3 H6 b X
<button id=play_music2>playmusic2</button> |0 t( k3 y- ]; D: i* Z
<button id=remove_music>removemusic</button>
# _% F Y' p5 {' v* p: B, q<button id=get_current_src>getcurrentsrc</button>
9 a+ p" ^1 P& A# S$ n6 L+ A% z) m$ m- N X
<button id=get_initial_time>getinitialtime</button>
% j' z4 ~1 T$ D( y0 ]" h% J<button id=get_duration>getduration</button>
9 ~1 a3 X$ l9 R% e" w<button id=get_seeking>getseeking</button>4 z( H# L, m" i- F; P5 [/ i& t
<button id=jump_to>jumpto_30s</button>
1 {$ `' K8 }% G) H Q# C) b- F<button id=get_current_time>getcurrenttime</button>
0 T8 \" p4 @0 B& y" f) e<button id=get_played>getplayed</button>
4 I2 l& J8 X' u% c3 Q2 P4 x; A8 q% U% ~5 h/ s6 ?
<button id=autoplay_on>autoplay_on</button>9 _/ w, k" n- S4 w; ^2 v
<button id=autoplay_off>autoplay_off</button>. z: F* f6 d" [, H1 u( \
<button id=get_autoplay>getautoplay</button>; A( a8 _! C' ^7 c* `$ ]
1 T5 y% H6 C7 \3 e: f& t
<button id=controls_show>controls_show</button>- s e0 b, f" l, P) Z J( `: e
<button id=controls_hide>controls_hide</button>
$ F# N/ Z" e; o! [<button id=get_controls>getcontrols</button>' _: f' \2 k u4 I9 k+ Q* R
1 f+ k) A! {7 _7 t$ x<button id=loop_on>loop_on</button>
/ [3 C2 L0 ^7 l<button id=loop_off>loop_off</button>
) V. |/ Y- l3 B<button id=get_loop>getloop</button>7 \" v' g4 N7 e
/ ?% W$ r# |, S7 g+ E& i5 N/ o5 R3 A<button id=preload_metadata>preload_metadata</button>
4 n% U) ^0 d( ~# z* A$ j<button id=get_preload>getpreload</button>
) A/ o& A' s5 @: J7 U0 K9 i5 Z3 c" c/ l- D
<button id=get_default_muted>getdefaultmuted</button>
L) k. |" K2 A9 m<button id=mute>mute</button>
- X3 t3 N) H" w( t" l* o<button id=unmute>unmute</button>8 u) h! H- I2 P2 @, L- r D
<button id=get_muted>getmuted</button>
1 F- w1 y: | \5 ~! `' r2 J, G" [9 f( Y. G7 q. J S7 I6 b
<button id=get_default_playback_rate>getdefaultplaybackrate</button>
* o9 Q! I% w+ _/ f# g& b" H2 e<button id=playback_rate_down>playbackrate-</button>* n: k# | O6 u8 i
<button id=playback_rate_up>playbackrate+</button>; r _$ B) E& y1 u
<button id=get_playback_rate>getplaybackrate</button># z! T! D/ y% }) H
3 D3 u9 F! H: j/ M) ^3 K N
<button id=get_network_state>getnetworkstate</button>
7 j) _4 \. i# x% V6 l. |3 W7 W! T<button id=get_ready_state>getreadystate</button>+ _% f9 F" d2 \
<button id=get_buffered>getbuffered</button>3 ?. L4 q$ h9 t! }
<button id=get_seekable>getseekable</button>5 H4 @9 x5 u, G8 Y, Y
</section>( d' ?! b7 ^' B: a
</article>
$ l1 F! m% A+ q1 c& c$ Z; o8 ~2 H<aside>+ T' {" J e+ P) ]6 b4 |6 |
<section>2 y: s9 @- X' P. }
<h3>player attrs</h3>
7 _1 B7 h2 F9 r) L, J<table>
2 x4 G/ z8 `' g# X<tr>9 X, b {7 o1 J) w* _1 a5 @
<td>autoplay:</td>$ g% W" g7 m/ l4 j1 G+ O9 h) |9 L
<td id=autoplay></td>
" `6 [$ L- E7 g</tr> s! n5 _8 K, C% ]0 Y2 t
<tr>- t4 J/ l' u7 k# j, G! }2 ]1 W
<td>controls:</td>5 b A7 M- A f7 f$ R0 F6 t/ J; V
<td id=controls></td>
+ W- O" w; Q, u6 \+ ?/ q$ F, z</tr>
0 `0 N5 J: m7 s' M<tr>( ^6 ]7 o5 J6 o W9 c3 \
<td>defaultmuted:</td>! Y4 [) ^% }& Y M$ F. R
<td id=default_muted></td>
' J- D, I4 `/ y9 Z9 i) M7 n5 }</tr>
4 h! d. o- o0 P z& V+ G9 G6 M<tr>! U2 k" S# m, I; g/ p8 _2 I
<td>defaultplaybackrate:</td>* k6 N' q0 c2 s" o: u3 v8 r
<td id=default_playback_rate></td>
, o9 j1 ?- h5 B ]" ^</tr>1 }$ e: S( P- h: U% G
<tr>; \. C9 L( j1 m$ `: A- }+ m4 a/ `
<td>loop:</td>
/ y1 P0 d) Q/ J3 F<td id=loop></td>
2 \0 E1 ?# r/ n1 T</tr>3 V$ f/ ], i0 i$ J
<tr>6 R: f# R8 H* [& x/ y
<td>preload:</td>
# j& d. A5 Y/ M6 p; ]2 r<td id=preload></td>" v4 t/ X4 w: b$ P/ U e
</tr>
5 o# I' ?2 s7 c" w; M& H3 g</table>% V9 H" g3 ]1 ]/ I$ M1 p \
</section> r% v6 T( D5 f# v" z5 p1 I" m
<section>+ Q" w \) P4 u- R1 u
<h3>player info</h3>& j% k! x3 I6 e& M, ~1 y& S
<table>
! }/ L, [- L R5 S5 z. c3 o/ s# a, }<tr>
1 _- y! K' X9 i6 R1 Q1 @3 g, C, {. c<td>src:</td>
2 O9 T6 g* Z- k7 K) w<td id=src></td>8 P6 u# L) v% P6 D% Z" y. }
</tr>8 X$ x) N& E0 @% D3 f: R
<tr>
' c2 m$ l- n8 j: q ?<td>currentsrc:</td>: s3 n9 ~+ r- [* O9 V- }( Y- j! O
<td id=current_src></td># ]9 l: }5 o- S( d( U4 u
</tr>
: U$ c* y6 v; i' Z8 I+ z<tr>% @8 H5 i( x6 ?! V: k+ ^
<td>duration:</td>
T" x) l% Q8 [) ] [2 p<td id=duration></td>+ ] o) z+ R* \5 I
</tr>
! n+ D4 i% Q- q3 O* E* Y<tr>- X# m- u, Q# {: \6 `6 h7 r
<td>currenttime:</td> ?' W$ w# u4 f& g: l
<td id=current_time></td>! C# F3 [2 Q9 L; f* G
</tr>
( B( |3 A2 z) ?7 o<tr>9 I9 `# n/ U6 B% u$ y3 j
<td>ended:</td>$ j# N0 a! _ N5 V. V6 P; T
<td id=ended></td>9 ?( `) t1 b5 o. o2 {# T3 p; {
</tr>6 O2 I, o; m% d8 Q Y( g
<tr>& i' q) e3 f- y5 B: D P" M( r
<td>paused:</td>+ w3 \. i T6 N3 n" |2 k
<td id=paused></td>
' B7 n- `0 m# I0 Y# J9 T</tr>0 d; K' j X) ^ B
<tr>0 o9 ^9 M' n- Y- ?
<td>muted:</td>
8 I0 @9 }& Z% h3 e3 r<td id=muted></td>
' a `2 c. Y5 d, [! w/ X7 h- [</tr>$ B- a/ S: @9 Y, G1 B
<tr>8 I5 a- O& w1 \) {8 l9 m, d/ g
<td>volume:</td>& f) \& M6 N* Y
<td id=volume></td>
0 y8 @ ~& o0 R8 E9 [% t</tr>% f1 T/ p5 [* r* R* s% i
<tr>2 h% U% \; {: l% j3 Y r4 @, S/ Y! t
<td>playbackrate:</td>
' d3 o/ j- x% f" c) G" j8 N<td id=playback_rate></td>' {8 N) [& ]" n3 ]6 K: k4 n
</tr>6 x1 `* y9 d3 f- N
</table>: Z" N, J4 R% Z( ^
</section>) S0 G* ~/ r. |7 W' o, u
<section>
2 I" z; w ]& p# z1 A- d' ^4 Z1 v<h3>play status</h3>
# v$ `# O$ P. l/ J- \% a/ x<table>
! ~$ t! H. O! K4 p! R<tr># c/ l! N& c, U# ?5 Z7 T- S7 c
<td>networkstate:</td>- D" X1 l% e+ t
<td id=network_state></td>
8 u1 f4 J1 Z$ A' `. F+ K/ |</tr>
$ r2 x+ J! ^1 q5 w, o, m<tr>8 v' Q+ v. J6 s; m
<td>readystate:</td>
: {' H; e3 T/ f# P* b* T% H<td id=ready_state></td>
# {1 w" g% U; d) F9 v' T8 {</tr>6 x# X3 _. N$ N1 M' V& j; C" B
<tr>/ p8 v: D( ^- ]" t
<td>buffered:</td>6 `( z9 i5 j% c' E. O8 o6 [
<td id=buffered></td>& G. Y8 X; u( F- f
</tr>
$ i+ `( B% \1 N<tr>
" F+ ^' p- W3 |* p. |6 `<td>seekable:</td>
7 o0 Z& T ~# u<td id=seekable></td># H* G, S, z* U
</tr>; F. r8 s& g: W+ v
<tr>
: S2 v/ i3 \2 T<td>played:</td>
4 m8 P4 d, R3 i6 v" ^7 Y<td id=played></td>
! F1 f) M1 r4 `1 h1 N</tr>
) j3 \2 o( ~, z( d* k' H) l<tr>
( Y) {6 r4 T- u<td>error:</td>4 D2 [8 d0 N" G0 A
<td id=error></td>
: q+ ?9 P9 W- U. p4 ^</tr>
: Y* G7 A/ H$ O</table>2 p* H2 D" t7 y2 ~( r
</section>
# D* _5 X) \' Y. p/ i/ Y6 J: I</aside>% B/ p& O& S# q1 ]/ Q2 u
</body>
3 p, ?9 `3 I* n</html>
, F7 B) s) Y; p* y0 z
3 l Y1 _. U- Saudio-controls.js
0 l) S. ]; u8 x& l' @" F. h3 [% A
' a$ K1 u# {" R( y! s; e. j/ k代码如下:
W; }$ u1 s% R; Iwindow.onload=function(){" F4 F# a" g6 `, s$ ^
// get autio element
7 h$ Z$ F; D8 e y, ^& J5 H5 ~var audio=document.getelementbyid(audio);
5 u! A: K& z+ o* h- p% ?; e1 q// play()0 l9 b" p$ ^9 c2 h6 v
document.getelementbyid(play).onclick=function(){0 p0 s8 g7 Q2 c R
audio.play();0 e' e' H0 |& T8 o+ x3 }3 ]: r% Y7 y
console.log(play);# u7 J4 g7 M) r+ m( e- O) U
};+ m* V/ t7 Y& H* w: @6 V
// pause()
, S) V# k) g- R0 o/ l2 d8 }- qdocument.getelementbyid(pause).onclick=function(){
Y f+ u/ `1 V& ?audio.pause();
: x$ ^, [" n8 X0 I( hconsole.log(pause);: x$ C9 C! S: I0 z6 D. ]/ W
};
& F+ O. A: p! q) g5 d% H! _* j// get paused) A/ p& z! F7 p6 J) A
document.getelementbyid(get_paused).onclick=function(){
2 `& X: _; A/ y$ b) m: j( g3 R9 hconsole.log(audio.paused: +audio.paused);
$ Y) y/ t; o' {3 Y# {1 }) B$ P};1 F0 v a T/ I/ e
// get ended
3 o4 ?+ N$ i" H% }! T! T( V" D% ]document.getelementbyid(get_ended).onclick=function(){
" b! d3 m( v( Gconsole.log(audio.ended: +audio.ended); H `6 d7 e7 F+ N% B' h' G+ f4 r
};
6 ?& Q |' T/ ~. l1 c- `// set volume-
9 u9 m+ ?. P4 z. O+ T% R3 M, M ~) Gdocument.getelementbyid(volume_down).onclick=function(){! C. S7 y% h/ K% m1 D: k; M
audio.volume-=0.2;' c1 q O# P7 j$ C7 u& I
console.log(volume-0.2);
6 [6 c6 r/ F! I1 n' ?. E' g q};! m8 {# e, `/ H" k
// set volume+* W2 A# J% R0 ]7 n5 u, t
document.getelementbyid(volume_up).onclick=function(){( O4 h+ h! {$ p
audio.volume+=0.2;
, z1 Y2 q, ~7 ^% F+ v: Q Mconsole.log(volume+0.2);! |0 U6 g8 I# T
};
7 J! T7 l% }2 v4 m; O5 U# p// get volume, L8 H* m$ {7 I
document.getelementbyid(get_volume).onclick=function(){
' e/ h3 E+ h; i. ^+ ?console.log(audio.volume: +audio.volume);' R( D! h; w: \
};4 T! T# o+ x k4 n
// get src
/ M0 P/ p3 q/ |+ pdocument.getelementbyid(get_src).onclick=function(){; v/ d; x+ K5 p8 j- M3 ]) t O
console.log(audio.src: +audio.src);3 @. Y" M* Z/ b7 V- p
};; I: d9 E$ ^& d$ p1 {, q
// set src_music1
5 A. j* a( J0 E9 s: Adocument.getelementbyid(play_music1).onclick=function(){
; E, y: R* b ]- L; m' saudio.src=./media/music1.mp3;
6 K$ \6 j2 ?, w I- @8 k" Dupdatesrc();
! g, g8 [9 {2 Yupdatecurrentsrc();
- C3 Z% A# B& g, e3 p# ]console.log(play music1);
3 W2 o% v( n }; P8 y};
# c) o6 [/ u |+ @3 @. [/ I// set src_music29 L$ f. r0 I- |' p% ]
document.getelementbyid(play_music2).onclick=function(){# F7 F) |- X/ ^2 S5 J; Y" X9 }& X/ _) {
audio.src=./media/music2.mp3;
$ s5 t1 j9 D; Cupdatesrc();
; Q, A0 ]' ~5 }6 U5 A4 Oupdatecurrentsrc();
3 x! m! m0 ?; |& C3 F& d; |! bconsole.log(play music2);
! w9 q) B o$ C- I/ }# j};
" J8 M# {4 b5 l% R) z// set remove_music3 W6 B7 r2 u1 M& G' C) F
document.getelementbyid(remove_music).onclick=function(){ @! m8 v0 Y8 R" K
audio.src=;
2 m6 X- C* N1 a- z* m! y) C% mconsole.log(remove music);
- c+ X3 T" s# ~: d% Y% P};+ v* V7 \4 V/ i1 P& s3 W" q: T; C
// get currentsrc8 F4 k: _& O) P s, n) o
document.getelementbyid(get_current_src).onclick=function(){
! P) o% T7 s) l, K. u1 Gconsole.log(audio.currentsrc: +audio.currentsrc);
) G: m% O3 P: h' O0 Z p5 g8 G};$ t. b& P2 p0 E$ O
// get initialtime7 z( ]% V! y' I3 p8 L
document.getelementbyid(get_initial_time).onclick=function(){7 ]/ i( e; I2 w2 _
console.log(audio.initialtime: +audio.initialtime);
; x3 p7 V" m6 [7 V& s$ P};
" @& `% Q8 @2 W; x3 [// get duration' u+ \- C8 P3 J5 I' X" Z' R. L. E4 t
document.getelementbyid(get_duration).onclick=function(){
2 G4 G/ x4 Q9 Q+ w2 t# h( c' H, Xconsole.log(audio.duration: +audio.duration);* F+ Q5 w2 i, D1 E0 M
};' E, i) A2 ^) F4 `! x* M
// get seeking& P& B# E7 E' \6 B1 i+ L; ~/ d: a
document.getelementbyid(get_seeking).onclick=function(){
1 Q# W! F+ R/ }% u9 |console.log(audio.seeking: +audio.seeking);
" Q) I+ P8 Q5 f( r};: \( P; a+ C, a" y5 Y8 k8 [0 C! ~
// set currenttime- q0 A, b) }7 \! d& f
document.getelementbyid(jump_to).onclick=function(){
" ~' K+ g4 V( l4 r2 v H: Faudio.currenttime=30;7 Y6 M9 y) ~% y
console.log(jumpto 30s);
/ ]' g: |& \! E/ Z};2 P3 g# p; A" M* g/ b ]: u) T
// get currenttime( H6 `5 H- G4 e1 |5 N7 D- J
document.getelementbyid(get_current_time).onclick=function(){
+ k8 i- @7 T3 {% i/ ]console.log(audio.currenttime: +audio.currenttime);
. E2 P5 _- w7 d, C# B* ~};
6 d& I8 K7 S8 C4 S3 p0 O) l( w// get played; l% r6 R7 a, B$ z4 o' s
document.getelementbyid(get_played).onclick=function(){2 {" Z6 [1 {! Y4 a$ l/ }& r: d s' m |
console.log(audio.played:);" r2 l! x) L) Y9 O; R% ~, E
var ranges=audio.played;
: w. `/ f) p. tvar n=ranges.length;7 V$ {0 v3 }5 Y2 [+ p- p* U9 u7 v- X
for(var i=0;i<n;i++){
n5 Z+ w$ ?6 _% [9 q6 p. x+ g5 {console.log((+ranges.start(i)+,+ranges.end(i)+));( S1 z2 X% \! [2 d, \; ]
}
/ I/ d6 H+ d) I' F* c) t; Z3 ]6 J};- P+ x0 s. s+ T/ k
// autoplay on% c; w5 o3 u8 a" u, w
document.getelementbyid(autoplay_on).onclick=function(){
: @: R3 u( T' @audio.autoplay=true;
7 v% l/ X# c1 P# z* H2 b* S0 iupdateautoplay();
' o0 J8 c: x; ^' c( I6 Mconsole.log(autoplay on);1 x1 u( Q( F+ G' S" o7 C$ k" v* j
};
! O9 M8 M' ]# J1 h) n, @// autoplay off$ ]6 s( F* b4 q; o* l
document.getelementbyid(autoplay_off).onclick=function(){
0 L, q/ o1 f5 R+ J) aaudio.autoplay=false;1 N1 a' x, R, [9 E- d
updateautoplay();8 T/ ]8 a3 z, c" A0 s# ]( d
console.log(autoplay off);
8 B6 I' r* A4 A6 h- t};4 @ e( s2 Z' N+ ]" ~% x
// get autoplay
% a: f' s: r Y9 Bdocument.getelementbyid(get_autoplay).onclick=function(){
9 s+ o! Y; V$ n, Nconsole.log(audio.autoplay: +audio.autoplay);
+ U- G# B/ |5 |};; w6 r* _! x4 E i. h! {: ~
// controls show4 m; y& l6 \: U' I3 b' T% z; R4 }
document.getelementbyid(controls_show).onclick=function(){* W1 B: _3 L& |: I0 y
audio.controls=true;
. M/ V& x2 m; S& V" }7 m4 p1 Dupdatecontrols();
! L3 @7 \7 ~/ i" R% Mconsole.log(controls show);
$ }( Z; h$ s( q- g* {* g};8 S) ?8 T- q' N
// controls hide
5 n) @' K" D( H+ Tdocument.getelementbyid(controls_hide).onclick=function(){* W6 c S3 z: W2 e0 ?4 I: t8 }. w9 [! `
audio.controls=false;) b" m, Y0 j6 K1 X) X
updatecontrols();) Z6 H. [, t/ N1 f/ c; X1 Y
console.log(controls hide);0 L, [8 g1 `3 g0 v F! o/ R
};
/ }& U' Z' ]$ J. V5 d// get controls: P% O+ o3 g7 N: O' b) A
document.getelementbyid(get_controls).onclick=function(){! P5 V- [; B) i
console.log(audio.controls: +audio.controls);8 d: i2 @' z( q( h% l' P
};
4 \/ k6 R0 X0 A# V$ I// loop on% `5 Z' J0 |* n6 | b2 C
document.getelementbyid(loop_on).onclick=function(){
* _, U: m2 a! v* `audio.loop=true;
9 w# G) i( f& Pupdateloop();
& i6 Q. _ w/ v0 D) l7 u% Sconsole.log(loop on);1 Q2 p* P: D2 Z+ x3 e( N
}; O* D0 C, k9 x
// loop off
' V; A% Y8 x7 A+ ~" z' J. R; cdocument.getelementbyid(loop_off).onclick=function(){, ^4 A+ v; V) |% A
audio.loop=false;
+ }; x( H/ s6 o- Q9 \; Qupdateloop();+ s3 K+ c+ j: u8 B" g
console.log(loop off);/ {, R" K% m6 X% e. T
};, O8 G, b: u! \; Q. w4 d
// get loop- J3 j |* t$ i
document.getelementbyid(get_loop).onclick=function(){ g# Z9 V- \' K- D5 U/ ?
console.log(audio.loop: +audio.loop);6 {' Q4 e' K2 F/ ?
};3 A% Z! z( P5 Q5 j) N! S' \
// preload metadata
: x1 i! } a; \& y2 Bdocument.getelementbyid(preload_metadata).onclick=function(){% |, t$ U1 v& R2 W7 m- L
audio.preload=metadata;
I; X4 e- @/ \) B3 {$ U: ^updatepreload();8 r( o, I9 b! v- F* g( h6 t
console.log(preload metadata);
8 _2 q, w4 r/ f6 E0 W7 H1 o};
% N) ]0 C2 ^' a: a4 x// get preload
- X" O$ ~& |; i+ }" pdocument.getelementbyid(get_preload).onclick=function(){* b: f+ i# M+ |( z2 c9 C" {
console.log(audio.preload: +audio.preload);; B4 n" N- m6 H
};/ q: Z$ Y1 E5 T1 C+ k! n
// get defaultmuted( V1 `: ^) _+ g8 U5 b7 F# C
document.getelementbyid(get_default_muted).onclick=function(){: ]* e3 t* S d. ~1 R- a' I
console.log(audio.defaultmuted: +audio.defaultmuted);
* M: S/ T4 j: K9 T* A4 k+ n2 J};
# b8 v6 E( O+ P7 T* v// mute% E/ ~! u# z& q5 i5 r% s
document.getelementbyid(mute).onclick=function(){. N J6 X9 x8 d. `4 l1 J- r" W
audio.muted=true;
% Z6 K9 e. O; u. ^updatemuted();8 p( \9 {* [# N
console.log(audio mute);
@0 h6 i, P( _};' _# B1 T; ~# w' y. b
// unmute5 _, ^# q H8 l* ?9 H# I
document.getelementbyid(unmute).onclick=function(){/ t5 M7 w6 G/ ^- I" l9 u7 L/ S2 Z8 W
audio.muted=false;
: v- A. H; n5 l: Wupdatemuted();1 @) j/ v" F2 l2 S
console.log(audio unmute);4 X, Q+ `3 g& k k8 l3 \! w
};
* s n" j2 E# @! I; J( n0 E// get muted
! J) B, S9 l) N Z# O# L0 Pdocument.getelementbyid(get_muted).onclick=function(){8 m2 l- q& W E w
console.log(audio.muted: +audio.muted);3 c6 R+ z& g/ H* _
};: ?1 _, W/ D0 c8 [. g6 U& F
// get defaultplaybackrate
% t2 q8 {$ V; Rdocument.getelementbyid(get_default_playback_rate).onclick=function(){% n) `0 }% \* O! j# H9 F( S7 X
console.log(audio.defaultplaybackrate: +audio.defaultplaybackrate);
, M* D5 Q; \6 F& ]};
* m1 f6 i# f; u0 q. ^3 c9 i6 n// set playbackrate-) H3 ?9 J. h+ d! w, r* P
document.getelementbyid(playback_rate_down).onclick=function(){. w2 e2 a* r2 ~% x* c1 A
audio.playbackrate-=0.2;/ B( D5 w% w' h& W0 }
console.log(playbackrate-0.2);1 a; ~. E$ P7 a( t
};
M0 x8 m) W, L3 U2 @: a( i$ _& ^" d9 n// set playbackrate+' K' y! b+ a4 ~8 n
document.getelementbyid(playback_rate_up).onclick=function(){
0 E* b$ d8 N3 w9 G$ }audio.playbackrate+=0.2;
. c0 |0 F# x+ vconsole.log(playbackrate+0.2);
& \. S7 F% }6 b, i- p4 l- }% N3 m};$ R" M; m( ]8 `$ i/ d R$ a
// get playbackrate1 H. S! n4 T4 ?. p/ l9 J& M8 c
document.getelementbyid(get_playback_rate).onclick=function(){
% w/ V+ R+ X h( A& Sconsole.log(audio.playbackrate: +audio.playbackrate);
( g, z' {2 I* S: n: F9 k5 f};+ t4 E% L+ P4 o; F
// get networkstate: }3 _+ N/ W2 g
document.getelementbyid(get_network_state).onclick=function(){
* a5 p; a# x' y0 G0 wconsole.log(audio.networkstate: +audio.networkstate);
' C' a/ {4 w) e- ?" C, F};( F' I5 i9 g' F1 o
// get readystate
% v0 m* |/ O# Z) rdocument.getelementbyid(get_ready_state).onclick=function(){" a# q( f! i! t% \
console.log(audio.readystate: +audio.readystate);& ?; M2 r. X$ G7 @) A9 q
};7 j( M; W# @8 _+ c6 Z; ]
// get buffered, z5 n0 t$ j* k
document.getelementbyid(get_buffered).onclick=function(){2 R( R4 M$ s3 J" [3 C
console.log(audio.buffered:);
7 t$ ^: s. f; t- y: ?' V: ~var ranges=audio.buffered;
) Q0 M) P; ]( F" T! D1 Mvar n=ranges.length;- l2 H; O0 P9 n' X
for(var i=0;i<n;i++){' s E, W9 o' J) ^; U! _. B8 H' U8 \; w5 r
console.log((+ranges.start(i)+,+ranges.end(i)+));
3 E8 u0 a3 Y1 V1 R}4 X( [# B W9 M7 ]
};
1 a, t) |- y9 N! w// get seekable) \) B0 [' G5 g) H. ^: r2 w6 ]* K" W
document.getelementbyid(get_seekable).onclick=function(){( Y4 r& a3 ?. o( u! \" z2 }# p0 B
console.log(audio.seekable:);) z" f& S4 C! z7 Q' [* M6 B, Q$ F! H4 D
var ranges=audio.seekable;3 {- j/ I& C. ~7 X, D
var n=ranges.length;
2 B5 I4 }; [3 z' Ufor(var i=0;i<n;i++){ G% [6 G: X1 h3 U
console.log((+ranges.start(i)+,+ranges.end(i)+));
' S) b% C/ a' O0 X" O4 ^}
+ Z) l" n( S# P};
1 s6 d" d9 ~' u6 {; {* A// dom events
3 D' M# K+ ?% K) P// abort
( u# c6 w7 c4 Q4 c7 jaudio.addeventlistener(abort,function(){
& L* L1 m, n5 Q" Hconsole.log(event:abort);
$ N, o: D' _- c});" u; u! K. _0 {$ Y
// canplay; a4 H- M2 b/ |; Z' K. p
audio.addeventlistener(canplay,function(){; q8 G7 Q- t- Z9 ?# b' H F
console.log(event:canplay);
0 ]7 P. i1 R8 {/ G});" B: x, B5 B2 x6 a
// canplaythrough
9 u6 U$ F7 M& ^; @. naudio.addeventlistener(canplaythrough,function(){$ _" B- W( m7 Z( ]+ ]% ?! n
console.log(event:canplaythrough);
3 M* L( T4 l% ]) y6 @- R; c" x) ]});9 y5 D4 c7 l. X# l1 s) ?6 N1 N
// durationchange
, v/ i+ s) O! d' e% j" iaudio.addeventlistener(durationchange,function(){6 O, C) F+ y; u
updateduration();
% t. l# n& `9 M5 J- Wconsole.log(event:durationchange);
4 r v1 j, A$ f: n- ? G});
1 }9 P/ F* C" B* {2 j// emptied
9 K" F) C: ^1 _0 Taudio.addeventlistener(emptied,function(){
% }, X- }& j& }9 B- Kupdatesrc();4 J' D$ ]. e, a1 Z1 @5 w' M& @% ~
updatecurrentsrc();
& y! j+ G1 ?4 U4 Dupdateduration();' c" v- P4 R3 y3 R) u ~" T
updatepaused();& a" _5 ?. {% s2 v, }5 C
updatenetworkstate();+ Q) Q R& G C6 h
updatereadystate();8 e; {3 E% n0 v+ T% z# ?
updatebuffered();
% N- Z; x1 d# M; b! Cupdateseekable();% m; U2 U7 d! T# Z" P! N: e
updateplayed();
( v- d/ \% x' J- |% {console.log(event:emptied);
& p- P' c1 ^3 k7 P5 J1 K, q. Y' X9 v9 U});* P/ y) `6 G7 `3 @
// ended
; m* [3 ]# |) o: w; s: v5 taudio.addeventlistener(ended,function(){
8 w; N( o% e; A3 B: A+ kupdateended();
f: j! j! x h% `console.log(event:ended);4 O, q5 Z: ~% M& X( k
});
: \% n K7 M5 V2 t// loadeddata
, H& w+ B$ |0 A9 Y0 e' ^; j9 iaudio.addeventlistener(loadeddata,function(){1 x6 B1 F" z4 X5 V+ F+ l! U1 X* W
updatenetworkstate();
6 w' S9 a% f. A! Bupdatereadystate();
3 c1 p' l u2 m/ q$ q5 u3 @updatebuffered();
+ q! x! ?! q, c+ o3 rupdateseekable();
- Z" m3 M3 y, m7 b! X1 J$ Nconsole.log(event:loadeddata);1 \ t; f. c5 e; f
});
. D1 y. y7 s6 B% U+ X8 g2 ]// loadedmetadata% l0 s$ W8 E) E" O
audio.addeventlistener(loadedmetadata,function(){
2 o: l# p. r$ B/ nconsole.log(event:loadedmetadata);; }# F _, b" J3 {/ u
});: |- M5 b. Q% O2 P/ T, W; w! H
// loadstart
* A8 b L. o8 ] ]$ C+ l2 X" kaudio.addeventlistener(loadstart,function(){
8 J: |. y. U/ \4 b4 G- H) m3 j2 C: Y' Aconsole.log(event:loadstart);
+ t1 }" a; `# g* _% _5 A2 I});
( U9 u8 \ S8 N// pause% ?3 x# f6 m0 @
audio.addeventlistener(pause,function(){
$ b& W$ I& j) \updatepaused();' Q6 S% t5 D+ V
console.log(event:pause);
0 b0 j: c3 ^2 Z; f2 N$ l, Q});
/ K- N3 o+ n( X// play
, F, G* ?3 o/ g# R6 F5 f1 Aaudio.addeventlistener(play,function(){
4 U, ]! q4 H% |: u% aupdatepaused();
4 m. \8 T" A' R1 tconsole.log(event:play);
. G: d* x2 {* r8 t4 q7 }( J});, a2 v6 X, v1 N6 b
// playing% D& k P) a& |. P$ ~* d! L" S5 v1 `
audio.addeventlistener(playing,function(){
2 {6 m4 y3 s& Y4 h8 h. ]console.log(event:playing);
" N" H6 w& y9 R});9 j& j0 V" k- X& x9 U( g
// progress
. y/ ]- }/ E) y2 ?) G9 uaudio.addeventlistener(progress,function(){
% y# @ @$ c& ]; P4 ~! ]updatenetworkstate();0 N- ` F3 Y3 P7 W
updatereadystate();; p% R" B% Z$ a, v, h, o
updatebuffered();) s& U8 X1 N" T$ z0 V+ x# c3 C
updateseekable();) ]8 Y$ |! g( Z
console.log(event:progress);
- B2 }& ^* F J# H});
5 x6 M5 e$ n% ]6 \// ratechange
% S# H0 Y" P2 Taudio.addeventlistener(ratechange,function(){
$ X& ]; |, Z/ f+ N) n6 Z" ~, Nupdateplaybackrate();' Z/ C1 T0 ^7 S. o( p
console.log(event:ratechange);& i& e+ A$ v+ |
}); t$ r5 ^! l- V7 ~9 A; t6 l7 J
// seeked
5 X7 Q i1 m: @5 h8 G. z& Uaudio.addeventlistener(seeked,function(){
0 N( ^4 Z7 N) b& E. h4 c( h ]console.log(event:seeked);
: z- O5 D/ y* ?, A9 R& i});5 ?; l; p% ?4 q8 R( k
// seeking
! c" _) o$ o$ ? Y; Naudio.addeventlistener(seeking,function(){
. g( o: L6 d z qconsole.log(event:seeking);
I6 l Q. ]. n});, K8 T! ^' j6 N- g
// stalled Y, G7 i; x3 K3 m: Z5 J" K# O
audio.addeventlistener(stalled,function(){
0 I8 d" k- P* e7 J" | `2 P3 Zconsole.log(event:stalled);, @( Q& ?/ D" }. w! l
});
4 X0 L+ i: b2 f L6 a( c// suspend1 s w8 e" b! T7 }2 ?5 B
audio.addeventlistener(suspend,function(){& x' i+ M0 T' b5 j1 |
console.log(event:suspend);
# ^5 y5 \$ t$ u3 U});
9 c/ w' a$ U6 a2 D// timeupdate, A* {, O: u9 U
audio.addeventlistener(timeupdate,function(){
- Q9 w( [: c n- X/ ~updatecurrenttime();
' A5 o, `+ {/ @0 lupdateended();( {" I- I- R+ H: T1 c5 @- U; B
updateplayed();+ n' u; g: ^. k& l$ v1 @
console.log(event:timeupdate);- A) t$ u" X: `" Q# E' G
});
+ [& b5 w$ k7 {// volumechange. {1 {* ]4 c* w* E; b9 m& f+ T
audio.addeventlistener(volumechange,function(){- Q4 R5 z- c& ?+ u" r5 O
updatevolume();+ ?+ X& n y$ r/ Q! W+ S
console.log(event:volumechange);
, e& N+ }. B1 d& P* e: e" I});1 i/ k& D) D9 y! V$ }( n
// waiting
1 k3 s; N# D$ \( s: E% c h9 @( t4 uaudio.addeventlistener(waiting,function(){
# S3 k' L" k" ]8 s; Tconsole.log(event:waiting);6 F. C4 C" l. S
});. a, |1 L4 _* G. N, c1 ^2 S
updateautoplay();- h2 @6 a7 \; K, r1 Z
updatecontrols();
J8 X! K8 O# d( w3 [. n- Cupdatedefaultmuted();
/ M4 u7 ]- m7 K( d, l4 S I4 jupdatedefaultplaybackrate();
8 V- T; A% M& f& [4 G$ \, u8 ]updateloop();4 v1 O2 V* i3 M2 S
updatepreload();
3 U) y8 f7 r* C7 y, k3 I5 ] {updatesrc();
7 {2 E6 v6 H: r5 A4 H+ ?& Rupdatecurrentsrc();; N: G2 S7 l/ ^5 A) T
updateduration();
. i: R0 N5 ]- o4 I: e3 q( N& p2 g, Jupdatecurrenttime();. Y3 n9 t, X% P5 p0 e
updatevolume();
3 Y7 C% k6 c4 oupdatepaused();" q4 U& N6 S0 ]) U4 x
updatemuted();
9 ]8 `7 g9 f# M: `% |5 M1 T3 [9 Pupdateended();
6 i' K9 }4 |$ w9 ^1 supdateplaybackrate();
: O1 d- o& Z }7 L6 M. F! c" g _/ eupdatenetworkstate();
6 w# M6 V; u2 |updatereadystate();
/ {! ?; s$ s T1 d' fupdatebuffered();
9 V* q( V- g; m. |* \! _updateseekable();
& g8 K/ }; U' M$ U( S* Pupdateplayed();
" U7 Y/ `; k$ e; O" {6 `! [' p: eupdateerror();
3 ?5 U7 C% I* F! o" f7 a5 D};
* t! G6 Y. u8 z2 f: D' @// functions to update info table
2 z3 e6 w* b" D8 H8 {. `// autoplay" _3 t' u6 f _ f
function updateautoplay(){
: {' X2 ?, D1 t9 J0 a! J7 Mdocument.getelementbyid(autoplay).innerhtml=audio.autoplay;
2 [" @& z" E0 k( W; n}
4 T6 I" |! F: E% y, u) V// controls
' @1 O( F3 E" u9 j4 ^* m; b% sfunction updatecontrols(){8 l3 i- R4 ^& ?9 c1 Z5 q
document.getelementbyid(controls).innerhtml=audio.controls;
4 S' w* i. h, [9 f- u0 Z4 z}: K/ e/ h$ C' G/ u8 O
// defaultmuted: N+ V: V/ J o \5 e! r
function updatedefaultmuted(){% c: y( A0 a, d- q/ C0 {, G
document.getelementbyid(default_muted).innerhtml=audio.defaultmuted;
) V) q- [* ^' U' g9 c( b}
, c# {1 x& V3 R C0 _" E( g: J// defaultplaybackrate
! M9 f+ q* a* S) {9 rfunction updatedefaultplaybackrate(){& J! B% Z/ G+ u# d7 J/ i
document.getelementbyid(default_playback_rate).innerhtml=audio.defaultplaybackrate;
/ y3 T. |( f3 l% D}
: {1 {! Q7 T1 q- ?9 o// loop
U+ E8 y% Q F; Tfunction updateloop(){0 h6 L0 E- |' r
document.getelementbyid(loop).innerhtml=audio.loop;
- Q* Z. M _& r$ E, w}
3 @& ]2 h9 k) B// preload
- u! Z7 c+ C) B0 nfunction updatepreload(){
9 o( J; F2 G4 F4 j4 Cdocument.getelementbyid(preload).innerhtml=audio.preload;
2 ?7 I- ] D0 G}
. U0 y! E) f% O& k( N" Q// src
8 }1 F& X( |9 N) F$ `, P9 ]function updatesrc(){+ q2 k: m( }, H2 |) C q
document.getelementbyid(src).innerhtml=audio.src;
. X8 K7 m( m/ z2 P* _* O% ~! G}1 B& m% \1 h. S
// currentsrc
! @; H( y0 ^* }2 q' Q, Wfunction updatecurrentsrc(){( w$ n# ^2 C1 q* F& R) ?
document.getelementbyid(current_src).innerhtml=audio.currentsrc;, k; R5 F) R6 q& l- c. S, [
}/ @; Q$ i8 d- ?8 U
// duration* @- X. }% k2 K
function updateduration(){5 [( E. y3 O0 X/ i4 i3 N. q
document.getelementbyid(duration).innerhtml=audio.duration;
" {6 a- ^, k V0 n}
1 ^, O: j" }$ ~6 d) x. g8 d5 R// currenttime' @: C" e, C5 \4 m
function updatecurrenttime(){
" I) g; b* `1 idocument.getelementbyid(current_time).innerhtml=audio.currenttime;
6 s4 Y' d. l5 o6 T) I2 N}4 D' ?" o% \& h7 n+ g
// ended' C1 J( N* l9 A' G) W, @
function updateended(){
0 O5 o j& r2 S" O% C3 Bdocument.getelementbyid(ended).innerhtml=audio.ended;
, c' E; _7 a3 T}
9 {( T" Z$ L) a9 [# E// paused) s$ V+ w) o) g0 x) Z; }9 h2 n
function updatepaused(){9 B8 W9 Y% w6 H3 h! g9 z: I
document.getelementbyid(paused).innerhtml=audio.paused;; V* t6 d4 \' K3 u% K1 a8 c
}- j" @. p7 E2 d7 j
// muted
; e! z/ I- A- l. A" {& g, P0 _1 kfunction updatemuted(){* x# M, k V$ x% M: i
document.getelementbyid(muted).innerhtml=audio.muted;- Q# t2 b l" I1 D# c5 E
}
! T# Z/ |$ C" @// volume
8 [# Q+ M$ r F" l4 Ffunction updatevolume(){- u& O/ w+ H# g0 j" D
document.getelementbyid(volume).innerhtml=audio.volume;! t6 N. H1 G1 ?
}
8 j& B2 k: ]' r6 L// playbackrate
- i w4 r% c' o, M% w/ ^" \; ufunction updateplaybackrate(){7 q0 j5 y# Z; C
document.getelementbyid(playback_rate).innerhtml=audio.playbackrate;5 i B/ K4 ?% K- a3 e
}
" J m3 t* w. n( H// networkstate
9 _' S$ Y$ J+ ?function updatenetworkstate(){/ H# X$ p! k% B1 C# d' C
document.getelementbyid(network_state).innerhtml=audio.networkstate;9 z+ Y! y: n# g+ I" f- F" p( a: _
}
, B P4 N6 n# ~) i0 G// readystate4 P% W6 I8 f( g. N8 x6 Y5 n
function updatereadystate(){ @- j! t C; h
document.getelementbyid(ready_state).innerhtml=audio.readystate;
# i) B3 [) V( k% ]0 a/ w}# P3 r, z3 ^3 ^
// buffered/ o6 _ h+ D1 Z, `% r" {
function updatebuffered(){6 ?, R# @6 U* S5 |# k. r
var ranges=audio.buffered;
: @" c3 [0 [/ {: I1 Avar str=;" p; Z8 }# v' @" ^: i3 V
var n=ranges.length;
0 z2 h5 j- K7 I9 n/ J+ M% _/ Ufor(var i=0;i<n;i++){0 t; L7 R8 U8 z& h
str+=(+ranges.start(i)+,+ranges.end(i)+);
5 i9 m4 u5 t/ b' }* A! P9 z9 ?if(i!=n-1){
0 H0 Y6 l7 I O; u) hstr+=( x8 ^# E: q4 }$ P: o1 o
;
" z* |* P% c2 ^; h* }# R}
; R2 q4 q0 s* t0 s$ I}
4 v# _3 h- A) V! l c0 l2 sdocument.getelementbyid(buffered).innerhtml=str;
6 Z& k4 C+ u% l9 q9 g1 T3 U}
' k5 r2 [3 i ?: S+ t# ]6 h7 K// seekable
3 e2 y8 X% v! O0 f1 \function updateseekable(){2 `2 r" x% n! k9 `
var ranges=audio.seekable;
: `% Y- p* n5 @0 ^. ^var str=;
" }$ J( I& w+ x1 Pvar n=ranges.length;
" s, T1 S/ _1 R, Q" p9 k0 tfor(var i=0;i<n;i++){
7 k/ [' b6 v! I' T4 y& G3 N5 Zstr+=(+ranges.start(i)+,+ranges.end(i)+);8 |5 A2 Z0 G) Y/ ^8 I3 _# [
if(i!=n-1){" A! Q8 m1 `! X
str+=
" a6 G! u% J( V& u) e) e* C;
3 a0 c/ w7 S: d/ i& d7 b}! O* o4 }4 l( S# P2 K" [, u! U
}
7 K2 b5 e T1 t" d2 `document.getelementbyid(seekable).innerhtml=str;
0 `% B# W; Y7 w$ A}
9 k! x2 {2 ~" h6 e// played/ ]9 O8 r+ k& k* P
function updateplayed(){
7 y( @# g$ T/ E9 ~8 Tvar ranges=audio.played;3 V1 `5 P. ~6 ?4 U( u( q
var str=;
f0 C8 i' _ c6 B$ Xvar n=ranges.length;% g& i1 O% x5 a+ _
for(var i=0;i<n;i++){% F& D- E# |% Y% w, h4 I! P1 V
str+=(+ranges.start(i)+,+ranges.end(i)+);
1 ]3 V/ `( x1 e" q: eif(i!=n-1){
% u+ k, I9 D* n$ pstr+=0 s, G- D) H2 P& ?* a# \2 X4 u
;0 Z# l9 ~7 b$ G3 E+ ~2 `# w
}
) U* p9 k; R8 C* D2 `! w}: v" t/ D# r, |# i9 L( B: W$ Q. b
document.getelementbyid(played).innerhtml=str;( B" G& f8 B2 _8 C4 o
}
- c) P9 M5 X8 l$ G2 d// error
9 |% a) d$ a# o# a6 d# |6 hfunction updateerror(){
8 D2 [, G/ E4 @, Adocument.getelementbyid(error).innerhtml=audio.error;' p* _7 b/ z7 d! L% d- q
}# b' @9 z% o( x, `- \7 V+ k) E- t
1 [, Y _& v6 C
更多网页制作信息请查看: 网页制作 |
|