代码如下:+ n' \$ E% K* t& | ?5 D
<!doctype html>
2 T- O$ x5 K+ Q7 I6 `( U- M<html lang=en>
; _0 E+ U# _ ^( x4 d<head>
0 ^/ Q4 L' M7 ]4 w<meta charset=utf-8>
" ~# }3 i0 G6 ]5 O1 U( `<title>html audio api</title>+ @5 s) h+ `3 }
<link rel=stylesheet href=./style/main.css />6 ` F+ u+ r0 T# o
<script src=./script/audio-controls.js></script>
* I1 k$ I7 x: f0 m, M/ D9 ^2 g</head>. q3 A7 B+ i. d9 `3 S: U
<body>3 t6 v; \- E5 q/ D
<header>
7 W* z+ P" I6 A9 m, S/ i3 M<h1>html5 audio api</h1>4 C; w% G( K3 o2 R3 U
<p>html5 audio api demo by <a href=<a href=> target=_blank>learnshare</a>.</p> h/ c8 X2 M% l1 e$ |; e2 a
<p>
) E/ ]- _0 O/ d. C* @- Wlast update @2013-04-23 20:40:005 d; H7 M$ d, s u5 B' M# G9 F
+ add info table' y% h R) k. A) A5 K C
update @2013-04-22 14:54:00
( F' ^) V3 x1 b" b: ] S+ add dom events! H/ Z4 k8 j" ^1 s4 {: A; R
update @2013-04-22 12:47:00' j8 N3 D# c u' F
+ add getcurrentsrc button) i2 Z$ h8 c+ U1 h+ e
</p>
+ P( m5 r% y# X' s) `<p>
) O: j0 b3 Z; u, x7 t0 Lview code on <a href=<a href=>% q1 U0 h( W8 u7 S7 [/ M" C" E, Z3 v
> target=_blank>learnshare.github.io</a>.
5 C5 x3 q+ J/ @. g: wapi reference: <a href=<a href=> target=_blank>htmlmediaelement</a> and <a href=<a href=> target=_blank>audio/video dom references</a>+ s% Q. [: T. S2 |+ ]# B5 ~5 w
</p>- a( g% e7 J" k
</header>1 w# w; [! b( F% N
<article>
7 B2 E. w/ s8 {5 {2 ^- ]2 n<section>
% N' z$ N% }5 v3 g% X$ \' r, I<h2>audio element</h2>
9 [1 s$ ?. E0 y$ ~0 l<audio id=audio src=./media/music1.mp3 controls=controls></audio># q$ G5 e3 j9 d( l, d- H, G
<p>open the <strong>developer tool</strong> to view console logs.</p>
, a7 v7 v. y& \+ {5 I3 b- \# K</section>
; ?5 f6 B. o/ w: U<section>
5 s8 ~; o/ R( R<h2>controls</h2>& ?# }8 l* p& o
<button id=play>play</button>' h7 _: J+ T/ X# Y+ \( M
<button id=pause>pause</button>% H _% f. P% F) Q$ r
<button id=get_paused>getpaused</button>* A X8 {6 n C
<button id=get_ended>getended</button>7 e, T. Y1 E+ a* W
% _/ ~& _1 ?% S' @
<button id=volume_down>volume-</button>4 I1 ?& ?- z3 J1 k0 _1 y
<button id=volume_up>volume+</button>* e0 q, U- a# O1 |6 Q1 ?" D
<button id=get_volume>getvolume</button>
" y( R* a+ s/ x
' h# `$ |( M2 w/ Q<button id=get_src>getsrc</button>
# h- N+ [9 q0 T# [' Z, h<button id=play_music1>playmusic1</button>
7 l2 K, A6 G: d: J# |<button id=play_music2>playmusic2</button>
$ m! E) @' e" d& M* o% T [" c- J8 s: @5 v<button id=remove_music>removemusic</button>
$ ~+ m' q5 r2 G& y<button id=get_current_src>getcurrentsrc</button>
: G8 l) `& g5 `; N
/ k6 |* H5 K2 U5 t! g( j<button id=get_initial_time>getinitialtime</button>: g3 B# W( Q" l9 W# w# r
<button id=get_duration>getduration</button>
* v- m5 s) D& x" }0 g5 N- G6 P0 h, j<button id=get_seeking>getseeking</button>
% v/ J1 S% a' W* w! t<button id=jump_to>jumpto_30s</button>! V& x \: G+ p o
<button id=get_current_time>getcurrenttime</button>
0 N3 e4 p+ P) R7 U/ W+ m9 b<button id=get_played>getplayed</button>4 s; a2 `; d) Z2 l; U$ ~3 `3 Q$ S. n ?
# ]5 ^5 V5 R. B
<button id=autoplay_on>autoplay_on</button>
* W- U. Q6 g1 j, X; ~, |2 ^<button id=autoplay_off>autoplay_off</button>' l: Q, h( G0 ?" F* F
<button id=get_autoplay>getautoplay</button>
3 V' @' [) O M/ z: J9 v; H& R; O3 } G+ r
<button id=controls_show>controls_show</button>! X- `/ V1 ^1 E6 V7 L9 @9 @
<button id=controls_hide>controls_hide</button>8 H+ m" F y3 N) b* u7 A
<button id=get_controls>getcontrols</button>% Z* t! ? }4 ]6 z* [1 f7 o
" ~1 S. M% O2 {( d3 R" k4 C<button id=loop_on>loop_on</button>. H" H9 }- i2 }
<button id=loop_off>loop_off</button>
4 X8 K% X$ C: E) j<button id=get_loop>getloop</button>
/ u: ~9 }3 u& Y5 u! _. F
/ P; X; t% @/ u7 L1 e4 A# M) v" d<button id=preload_metadata>preload_metadata</button>
, k% k3 `2 W: |5 ?2 c" G% b& z<button id=get_preload>getpreload</button>
( O) J5 Z0 I: s7 M) E6 _( A5 u5 l
1 q& X" G- {' W! D+ a3 _<button id=get_default_muted>getdefaultmuted</button>
8 u# v) A8 R! `<button id=mute>mute</button>
! s6 j# m' _ `1 Q. U) r8 R! f<button id=unmute>unmute</button>8 z( Q# o4 k) \2 Q& Y1 u
<button id=get_muted>getmuted</button>: G# d& z: y: h( V5 ]" M
4 _( ] L% e$ l* e. g- s<button id=get_default_playback_rate>getdefaultplaybackrate</button>
3 N6 {3 N. H" F4 E% C( N<button id=playback_rate_down>playbackrate-</button>- o0 W) i9 c1 A- B
<button id=playback_rate_up>playbackrate+</button>
$ {4 N2 n! N3 ~& B<button id=get_playback_rate>getplaybackrate</button>
9 t/ w" x0 J/ ~6 A& m! j# M4 q6 z/ K7 Q$ p5 \: d, |3 P
<button id=get_network_state>getnetworkstate</button>
6 B. y: m4 E6 z+ n( J, {<button id=get_ready_state>getreadystate</button>
3 ^! @3 Y" Y- Y<button id=get_buffered>getbuffered</button>7 q+ f/ X8 n9 f% j
<button id=get_seekable>getseekable</button>
( B1 n7 H! _9 H</section>/ e% f* r; w+ P3 W4 r8 g' V
</article>. ?" L: G: X: _' g; Q* f/ d1 q
<aside>
+ D' j- j9 t: R# j) a5 L<section>
% Z7 P C. E( k' s7 x# Q<h3>player attrs</h3>
& _& s0 J- [- K y/ {( O/ ]7 i<table>
/ n( [5 L0 t1 o* j4 o) w X<tr>
' r" i- ~* K) _( a/ t1 s# p: |# c<td>autoplay:</td>* f0 t+ r0 e3 y
<td id=autoplay></td>. O* J' W( I2 Y* n) }0 G& G
</tr>4 d- i( S0 u: h- ^2 e! B& D
<tr>1 v6 c3 d3 e6 k! [7 g
<td>controls:</td>0 F: s% n4 S. ]: J. T# i
<td id=controls></td>
+ n5 X9 h& e! o+ s# B2 w+ i</tr>
4 B& v, J; Z- i8 ?+ e<tr>
* `" C9 g/ d2 e& o' j/ X$ A# d0 a6 q G0 |0 U<td>defaultmuted:</td>3 \, D/ q% n! y( X2 S A0 {
<td id=default_muted></td>
) f7 q" C ^( J% K* V1 ?! N3 d</tr>
+ ^& ~4 u" G$ H7 w' m; c: ~+ U<tr>
3 f1 P0 L8 O4 m: ^- ?( l6 q! I/ S<td>defaultplaybackrate:</td>7 b' N X. a: D# z) ]: ?
<td id=default_playback_rate></td>( C* t. |) T& `% r
</tr>
* t9 x, H# P* j9 e4 `" _6 m+ {& m<tr>
$ j* e+ Z& ]5 Z. W S<td>loop:</td>
( m* i. A2 `( b<td id=loop></td>
0 R, |$ n% ]8 W* `" X</tr>4 |% }$ R! c0 O; m
<tr>
5 j3 Z" d, W) c2 j<td>preload:</td>5 |. @4 o9 g% C! f6 `$ L( _8 X
<td id=preload></td>
Z5 `% R- i. i1 s L</tr>
3 M4 l5 k1 t5 C5 G6 Z; n</table>
& Q" {" r3 ]) a</section>
' k! E' K' f; p7 D# j1 z K$ f0 D$ J<section>' Y! N x' E% E: Y
<h3>player info</h3>
. G& T/ m$ @: j( W1 ?, v( w5 X<table>
; y$ a" r9 K! ?2 u5 u1 i3 j, m! q( Q$ J<tr>
/ \: G! a. |5 D- F k. ]<td>src:</td>
( |$ L' d: c: o! m) Z<td id=src></td>4 X, b5 s' O0 s! G8 Q
</tr>
% m& j9 r+ Y( i; E<tr>
, `( I1 \# h7 ] O, s9 `<td>currentsrc:</td>" @, m" d8 b) d5 D
<td id=current_src></td>
% X( a0 P+ U* D; V7 Q# Q</tr>4 F0 V8 w2 Y% \7 D8 ~
<tr>
' q* k! A! h. U6 x* p5 k<td>duration:</td>
q6 s9 B1 G& O" @<td id=duration></td>: e e1 E+ Q3 O, _1 E0 h
</tr>
3 |9 f b( C5 H. f% c<tr>- b& i% K( ?1 g
<td>currenttime:</td>
7 X" ], U% y& I9 ]: }$ Y4 P<td id=current_time></td>
: D. k6 u3 d( G. c4 H+ g8 l</tr>' u* v* `; U. j
<tr>
% L' v. ]& f( w, J9 f7 c9 r<td>ended:</td>
5 ^" E- D4 [) v+ ~4 x3 ?<td id=ended></td>1 a0 }+ T% i# I! m
</tr>. L, _$ ~" E0 n# `: H/ x
<tr>+ v8 a6 I# H" M) o
<td>paused:</td>1 B' T; w+ P# Q
<td id=paused></td>+ f5 R4 V- P: c6 u
</tr>2 @* z) ]; y& Y2 d, s c
<tr>
- u N% m) F8 O6 }. T- K# l<td>muted:</td>: _! Y( ~) @ N7 _) d! j
<td id=muted></td>3 m9 }3 h0 \0 \- w" i' y) [
</tr>
5 |; A' {( e8 u& E<tr>0 `2 d, D; t4 j0 {% c p
<td>volume:</td>9 M: b$ t7 V- L8 F1 O/ z
<td id=volume></td>
- v/ m/ B9 f: j9 R9 Z0 c) K/ i</tr>) k, I' A: z) U% `$ f
<tr>; y# H- Y! R: d" H* X
<td>playbackrate:</td>: F$ P& j [6 S9 _8 }/ n
<td id=playback_rate></td>" \. ~# R4 S! Q+ m
</tr>
5 D/ r8 R6 N% m/ z% N</table>7 ?/ h. U7 ?+ ~: F: ?
</section>$ W1 F' o) W. Z: T i
<section>
9 w! I2 C u- x2 u<h3>play status</h3>6 l+ G4 U1 M2 T! @
<table>
$ ?/ D. h6 I$ V" C& J/ D/ @9 c5 M<tr>
' }) k* `; q) a, a<td>networkstate:</td>
& U0 g7 d8 Y( Z3 T3 E5 y<td id=network_state></td>
% v9 L- R" S* u</tr>) Z* c. [! G- v
<tr>
. F* r1 Y/ j9 U4 _$ F<td>readystate:</td>- p7 Z8 U) |4 s& A6 A7 p4 O: c
<td id=ready_state></td>
: ]3 r* Y1 W& i; ^</tr>
% j; A- @) A3 x, Y4 Q- X<tr>5 p: L9 X2 x$ }( _" T* R7 ^$ B
<td>buffered:</td>- x- n* b4 p# b; z: D! \$ H
<td id=buffered></td>
* I# Q# ^/ c- W) u7 c</tr>8 U4 R- o2 j; b- H
<tr>
/ G+ Q4 R# L5 w- J/ r% j' S. d<td>seekable:</td>
1 r y5 H) H# o( Z; A B, t<td id=seekable></td>& k# U' B- [5 R
</tr>0 f% ^1 a- q1 l9 O ^8 o/ ~
<tr> t* ]8 F$ q& y5 b: d
<td>played:</td>
" _3 R. p2 y/ }+ G) ?6 @3 o F<td id=played></td>2 T" Q2 S8 @3 I( c
</tr>* Q- M9 x% }$ f: d: M2 q% a& X* P
<tr>
3 f; q7 v- g4 y/ ^# C<td>error:</td>' T0 f A8 Q2 O s9 g3 { O9 b
<td id=error></td>0 }3 l: U8 E7 D
</tr>
) Z4 E: C& J! g0 F</table>
$ A8 m- ^6 m; M7 p0 ~( ^/ L+ c9 W8 S/ g</section>" B3 W W+ S f0 u$ M# Z4 f$ A8 O) m
</aside>
% d$ A& _9 K# f$ h. h. ?</body>
* n% Y& x: t) ]4 e) N</html>
+ U# }: ?) F5 q: J$ C+ |- b& b
8 Y9 E- i* S, \& e4 S" E( |5 Uaudio-controls.js
' P; s$ x/ ~; g, m8 D* v! Q7 G% D( u2 o- @1 W7 m
代码如下:
" [" i) k( t9 [3 B1 L6 w" f0 X @+ Gwindow.onload=function(){' @) ~+ L; z+ r0 W* \
// get autio element) d9 z; T6 H, T: o2 |
var audio=document.getelementbyid(audio);
W% P. L( p) [# h// play()
& y/ q) |; ]* ~2 V5 Y$ adocument.getelementbyid(play).onclick=function(){
" H* F9 z% G7 I' D" m, ^' iaudio.play();1 G* I& w$ M8 k4 R) Y$ a+ H
console.log(play);
' `% k) W6 j; A, f+ R# G};# S+ c4 H, ~) v, E. ^
// pause()
/ W% E- I; |1 z' a' Vdocument.getelementbyid(pause).onclick=function(){- M9 n w$ P, W9 E4 p; J G Y
audio.pause();% T! Z6 A; v% R4 V
console.log(pause);' S. N: p: v! ^7 g
};
; s! E) y# o. Q6 s3 F" d// get paused( x* W/ ], B: J: h4 b% O
document.getelementbyid(get_paused).onclick=function(){5 K/ S5 ^% J" _+ F( ]2 D9 I6 w
console.log(audio.paused: +audio.paused);4 H. {& f. z8 e& l9 }
};
A$ \4 |: `% v// get ended
( |; Z6 r7 U' G8 K; @8 P& gdocument.getelementbyid(get_ended).onclick=function(){4 i( m8 T8 w/ c, T% p
console.log(audio.ended: +audio.ended);
# Q% K1 K. C0 t9 J2 B};8 k- j: n$ B+ n3 U8 w5 F5 B( }
// set volume-7 p7 s* |% I _! h" e! }' E
document.getelementbyid(volume_down).onclick=function(){
7 h# \ D9 F( e( paudio.volume-=0.2;
6 l9 Z( S, U7 ?, mconsole.log(volume-0.2);& K( J$ P; P) |* _# W* _
};3 W: t2 q/ p" x1 S$ j+ [7 P; Z# |
// set volume+
( v$ G6 g% L. c6 L+ b/ C6 jdocument.getelementbyid(volume_up).onclick=function(){8 n5 f3 K2 C+ `8 E4 r& S5 T
audio.volume+=0.2;& A+ R5 f: Z, E4 d/ Y: x T
console.log(volume+0.2);
6 y0 H9 E& s6 {. I/ t( A};
7 y2 S- a7 S" h$ Q+ x" ~: U// get volume
6 t. U( T! B$ R( B) pdocument.getelementbyid(get_volume).onclick=function(){
6 u8 |) _/ M0 [6 s0 yconsole.log(audio.volume: +audio.volume);/ v E. \9 N9 K0 V# q
};
! I5 Y( ^4 S6 X/ V7 W$ S# ]// get src& X+ |, P" M! P0 n) ^+ s
document.getelementbyid(get_src).onclick=function(){
4 K5 K r, m* g2 f4 a: y; nconsole.log(audio.src: +audio.src);
1 J! R* \( J+ q0 @: K2 w/ w$ X4 e};/ h r4 f9 `1 `: z5 K
// set src_music13 }: x9 ?& v) S( Z: A$ n
document.getelementbyid(play_music1).onclick=function(){- t4 Z. Q/ h8 Y# F0 E
audio.src=./media/music1.mp3;0 q8 G$ Q( X% j; K6 Y) A3 `
updatesrc();6 p) m# _1 G3 u8 f# Z+ n: ^ F
updatecurrentsrc();7 a, K$ f# Q8 g) S: i$ ]4 T0 y
console.log(play music1);& a# L8 ~8 w( q C
};; P$ m2 B1 R9 e. r3 e, H* {
// set src_music23 Q& u+ R9 G d& @
document.getelementbyid(play_music2).onclick=function(){. h( o) w5 Q" M8 u3 m
audio.src=./media/music2.mp3;
8 V2 Y* R" J' K% Fupdatesrc();
$ K4 O: k1 E. L: P. Qupdatecurrentsrc();
# Q+ \$ F6 R% m: V. p0 l J& P+ |2 l2 }console.log(play music2);6 \( b$ c6 o, P/ Y8 `
};
0 S3 v: Q! [4 s- O2 E( h3 a8 F// set remove_music5 ?/ ?! Z4 B' C) m& ~; M! ^! f
document.getelementbyid(remove_music).onclick=function(){
# I. w6 y: P) o% M5 Waudio.src=;
. t2 W, U9 n' V* L2 d* ~: |console.log(remove music);! {2 {5 I2 x" d2 v" Z# E) j, Z
};+ T1 v- h) R/ E* U. J( @# Z. x/ N
// get currentsrc2 I+ n# X% n! h. N2 x
document.getelementbyid(get_current_src).onclick=function(){
9 M/ z% O- x2 w1 f+ Econsole.log(audio.currentsrc: +audio.currentsrc);
" i: n0 W3 K$ i* r6 U};
( ?" L* U- N( V// get initialtime
f, @, f3 p& a7 W5 J5 n7 f. Fdocument.getelementbyid(get_initial_time).onclick=function(){5 m" w! w0 K o$ I6 k6 H* W
console.log(audio.initialtime: +audio.initialtime);
6 Y* @, L6 z1 Z7 ?};
6 W: D3 V+ \7 m, `# z// get duration8 O; ? h. G! D" w& d. l- V
document.getelementbyid(get_duration).onclick=function(){! x5 X! Z) g, b( b- a
console.log(audio.duration: +audio.duration);) p- f: O2 c7 q) |7 c
};2 Z( t' S3 _7 B2 y o8 m
// get seeking
3 X5 r9 L, W& b4 k4 r3 w" e0 Bdocument.getelementbyid(get_seeking).onclick=function(){
& q: c1 s1 @9 W1 c$ z$ a/ a/ Dconsole.log(audio.seeking: +audio.seeking);$ H4 }) h; Q- e% V& g5 i7 a
};
# r/ s( N6 Q) S8 u* q) e// set currenttime
* [" T% `' U1 M$ V: ^document.getelementbyid(jump_to).onclick=function(){: Q! e# r- T" Z# _# W
audio.currenttime=30;! `7 l1 a' p4 S$ t9 w" R" T' I
console.log(jumpto 30s);
6 y: V8 C$ ^% P. V" Y- o) e3 F};
* X7 F" x, b4 y/ F// get currenttime1 y5 f' B# k D. o- p8 x
document.getelementbyid(get_current_time).onclick=function(){
% c4 r5 T+ h9 m; \/ t( P% x8 `* rconsole.log(audio.currenttime: +audio.currenttime);
) d' ^+ @3 X" \4 q1 c7 N* T: L3 E};
1 p. K! L9 C; t6 p2 x// get played% s2 F7 F8 s$ t2 F: L% ~ ]: f
document.getelementbyid(get_played).onclick=function(){6 S# m6 A' f2 A8 P
console.log(audio.played:); e. k0 d2 H3 s( W* w& b) D' L
var ranges=audio.played;; w8 |9 \: |5 c! C& l
var n=ranges.length;$ F3 J, i% q* ?9 l0 c; a& ]
for(var i=0;i<n;i++){5 ~- ^0 _; }8 G
console.log((+ranges.start(i)+,+ranges.end(i)+));: ^8 O' B- w9 m$ s
}/ k9 F4 O' w% S; Y3 w, c
};+ z+ K; l, ^. T5 }: }% h
// autoplay on$ `+ k( d; Z) d( D& P4 `
document.getelementbyid(autoplay_on).onclick=function(){
( _9 J3 b% u+ `- g% q+ i) iaudio.autoplay=true;' h% S* J$ ~& e' Z, C
updateautoplay();# _4 I% {2 ?1 a( M3 b* m
console.log(autoplay on);0 p5 _" z. @: n; Q
};
4 O* R8 }2 q7 [1 j4 o// autoplay off
0 H c$ S* y2 |document.getelementbyid(autoplay_off).onclick=function(){
3 G7 H* P4 C% J% [4 maudio.autoplay=false;
* o$ V- U2 D% F6 [/ _* Uupdateautoplay();7 z: _% i9 R3 C* q2 A( U' Q3 {
console.log(autoplay off);# a* A* h/ ~7 }0 ^) s( J7 l
};4 d m" a! @5 A
// get autoplay7 G* Z& x( }# S0 c# J; L3 [$ ~9 G# Z
document.getelementbyid(get_autoplay).onclick=function(){! q7 v2 _0 L; D3 G- j
console.log(audio.autoplay: +audio.autoplay);' b1 E0 Y; ^4 Y( y
};5 X3 z) a0 g. A1 p7 T4 ]8 y
// controls show$ W4 H, Z7 j. |8 K6 A/ g4 V
document.getelementbyid(controls_show).onclick=function(){% L' m, n3 A% M- j3 }
audio.controls=true;( ?' a8 Y2 h8 b9 j+ v8 }+ |
updatecontrols();
$ K/ Z, W* D# |' Q9 J$ S% `console.log(controls show);( h' A& N9 c% X o1 [! k X9 P, a
};6 T/ B4 o) U+ Q) E0 h2 h0 w
// controls hide
2 E8 M# z5 b% F- Bdocument.getelementbyid(controls_hide).onclick=function(){% G* n5 ~# {5 E/ l( O6 B
audio.controls=false;, Q( b5 N- J) C! m
updatecontrols();
7 H& E% i( z, T' b( ~; f6 tconsole.log(controls hide);
/ c; R3 t' e( h5 Q: `- i1 n! P};4 d' g6 i- _4 l5 V- e
// get controls2 q; g! [8 m1 f, D) k
document.getelementbyid(get_controls).onclick=function(){6 o2 V6 `0 _# M0 \$ T( v1 c
console.log(audio.controls: +audio.controls);
* c# Y* j5 q9 C};
2 Y) B, G1 |1 D$ @/ n- L: P// loop on) N3 d* M) `- R/ f7 r
document.getelementbyid(loop_on).onclick=function(){! J. R' r3 }5 o1 ?+ K2 b! C" ]
audio.loop=true;
& w- K4 U. ]$ x+ D+ Bupdateloop();# k! Y2 z7 C$ c$ R, {0 H0 ~0 O% d9 p
console.log(loop on);) n% `" C0 t5 E
}; ?$ u+ b$ P6 s2 G4 e0 \
// loop off, w$ o! K$ S6 e6 M/ r, Q! Q Q
document.getelementbyid(loop_off).onclick=function(){
& ]! K" y5 x: `4 n- I2 T' `0 Haudio.loop=false;
: n% w' f! ]2 N+ c3 i$ A$ ?. wupdateloop();8 r5 J' m1 r$ R7 l/ C K# P5 ]
console.log(loop off);
/ }8 A6 E5 k, b};
( i+ f+ ^0 U8 u" ?+ t, _' X7 f// get loop% {: L: c5 E3 v. _
document.getelementbyid(get_loop).onclick=function(){
( x' d( M' X" l( I* X+ {" n' u' D: X9 xconsole.log(audio.loop: +audio.loop);. y0 r2 ^8 \ R& K
};" L& x# ]' G8 C- W& `& F
// preload metadata
+ A. A3 R* D' Zdocument.getelementbyid(preload_metadata).onclick=function(){
, H9 h4 |1 L9 U" yaudio.preload=metadata;; W0 t w _! Z8 D1 Y/ z) h
updatepreload();
7 Z* Y' A5 ]. K) V+ Yconsole.log(preload metadata);
4 z$ s/ f; u) F" y};
$ L! `/ B N+ p& x$ b/ l// get preload
1 A& T6 p) p* cdocument.getelementbyid(get_preload).onclick=function(){
e- h; i" \' J; c/ y4 Q8 ` }1 kconsole.log(audio.preload: +audio.preload);
/ x# i# [- C. O& W L/ x};& R x& U* c5 y: \ \
// get defaultmuted# }; l, `+ z: C5 o& v
document.getelementbyid(get_default_muted).onclick=function(){
5 p6 N+ b4 @5 Q6 M6 ?console.log(audio.defaultmuted: +audio.defaultmuted);" F/ I, b+ x+ g1 X# B' C- O
};7 }* q$ W# v( k- ]1 ]0 B/ Y7 Y
// mute
5 W0 S! |; u' i3 W$ W' j9 Idocument.getelementbyid(mute).onclick=function(){, C" E% N1 ^" S" m' i/ M' \+ d
audio.muted=true;, P! ]+ W7 O: i2 A* s3 ^: b. F
updatemuted();
' z7 F4 I# C) C5 \" Aconsole.log(audio mute);, }5 o+ ]) ], Z4 W" w
};5 |) B6 |! g( K. t, B" u
// unmute$ m* i% u, r! N/ c, o/ h
document.getelementbyid(unmute).onclick=function(){
5 ?5 N. L/ `& x' ?) C( _+ Paudio.muted=false;5 h% Y9 O- |- L
updatemuted();
4 g0 } }- |2 _console.log(audio unmute);5 ~- `0 |7 v9 X2 s2 U
};: l! A, z% L+ I' E1 d' |) N
// get muted
5 o* s, b. } n7 n4 G2 K6 q& sdocument.getelementbyid(get_muted).onclick=function(){' ^/ K7 t; H2 D4 y% Q. a* c3 w z
console.log(audio.muted: +audio.muted);
. O# C0 F& C: v6 @ c};
" _1 _5 y+ A6 G3 W. g. @* g& B// get defaultplaybackrate/ Y1 B! j4 j3 i; j* c
document.getelementbyid(get_default_playback_rate).onclick=function(){. a0 [" Z* t* c) o+ H; x3 \3 d4 {
console.log(audio.defaultplaybackrate: +audio.defaultplaybackrate);- i( ^. d5 J ]
};. {& q4 L" U" K' [0 M
// set playbackrate-2 E2 d$ ^3 m G# T! s
document.getelementbyid(playback_rate_down).onclick=function(){
m& N' p7 X+ x# J7 X( oaudio.playbackrate-=0.2;8 d! ]* [" r' \! \: @ {
console.log(playbackrate-0.2);
8 H; P4 P; D" P% h& e, T1 W};: K$ h9 `2 k2 h% l3 Z% h
// set playbackrate+
+ Q) \1 O, D- O9 Hdocument.getelementbyid(playback_rate_up).onclick=function(){
0 [$ B v$ a( @! T# r1 s3 ~, iaudio.playbackrate+=0.2;
% \( p# G2 Y' Z! [9 H" y! _9 ]% Jconsole.log(playbackrate+0.2);
. Y5 n; H2 A/ C};
! |. @' g7 f$ i9 z$ \// get playbackrate* p3 [& a' \+ V7 X" F! F' a. V
document.getelementbyid(get_playback_rate).onclick=function(){
8 l% }7 q9 X* R1 u, `3 pconsole.log(audio.playbackrate: +audio.playbackrate);0 m$ z+ s# K5 S
};
! f( B1 T- ^8 e9 X) ~% Q; \0 w) C1 A' d// get networkstate3 s0 D+ N% k- u s$ d7 i
document.getelementbyid(get_network_state).onclick=function(){
9 w6 r/ h2 u" V4 Kconsole.log(audio.networkstate: +audio.networkstate);
8 K/ E9 r. v6 ]2 T};
% p2 m$ t) w+ L+ P// get readystate
$ F ]9 m/ j# Y' D/ idocument.getelementbyid(get_ready_state).onclick=function(){8 q% C. N1 I5 X7 d: L
console.log(audio.readystate: +audio.readystate);
3 C# g# S2 l- I$ a9 i};
% W" z# c, Y$ C# u8 D// get buffered* Y5 i3 K8 r9 G0 b
document.getelementbyid(get_buffered).onclick=function(){
' l$ R& P2 d0 n% q# |& xconsole.log(audio.buffered:);
u3 Z/ y6 t% b- L1 uvar ranges=audio.buffered;# f- `1 w' R& X7 a1 B
var n=ranges.length;
6 B0 I; Y$ B, t- x7 ]" V) sfor(var i=0;i<n;i++){
3 `4 x8 a Y* [5 _( f1 ]! n: A! Aconsole.log((+ranges.start(i)+,+ranges.end(i)+));( Y4 ?8 { B; u' \
}* d# W' I! d/ j
};% _$ k4 v2 U+ B% B$ h& O9 m8 {* J
// get seekable
% C6 C: |& i! u/ P: odocument.getelementbyid(get_seekable).onclick=function(){
8 L1 X: i1 \; a+ c- Kconsole.log(audio.seekable:);
1 ?7 i! Y a; Vvar ranges=audio.seekable;
) D) f3 E: O9 k" ^+ gvar n=ranges.length;
; s! a3 u8 b p# V9 J, wfor(var i=0;i<n;i++){' `' a! u- V& @3 I7 o8 @
console.log((+ranges.start(i)+,+ranges.end(i)+));, ~2 v4 M' e0 p* _
}
6 [" }, F( T' {4 I: m: I};
1 N$ I- C1 Q1 a" Q3 @: D% B/ L// dom events% Q( {6 M: {! {7 B! Z
// abort
4 e1 ]$ O5 U* x6 y. S: yaudio.addeventlistener(abort,function(){. W8 X4 ^( ^: l1 t, w9 C- q- \; @
console.log(event:abort);. D, \" V, Y& J3 }( e
});- p8 _+ y* I7 S/ ^6 r
// canplay
- T- ]2 R# k% o+ S: t) xaudio.addeventlistener(canplay,function(){
5 H9 P6 k. W+ T' Rconsole.log(event:canplay);
& n3 a9 ~" r, D D});
! e* W4 c g+ w// canplaythrough
# J, Y! @; `3 Baudio.addeventlistener(canplaythrough,function(){
: M& C2 }3 @0 V! ~9 C( aconsole.log(event:canplaythrough);# z" v2 Y! g" L* \" f, |
});
8 _; B+ ]6 ^# ]// durationchange' [/ r. z4 G$ B( f/ T; r P0 ]
audio.addeventlistener(durationchange,function(){ ~; u% E% ]+ X7 D
updateduration();
% o% ?; A N. e3 Hconsole.log(event:durationchange);
1 c c8 m: G. K: ^& y' F});3 ]1 k# b0 l$ m; X7 m1 f' ]4 a' I
// emptied) |5 m4 u) T2 s
audio.addeventlistener(emptied,function(){
, t" {$ C4 n: U E4 l0 Tupdatesrc();( |/ [* r8 O8 j9 `
updatecurrentsrc();
/ S, ^; M' r* n- Oupdateduration();
5 ]5 F: O0 G/ R0 [+ {5 Kupdatepaused();9 b: E% Z9 w0 y, q9 j ]# m
updatenetworkstate();
0 U+ l2 y" x \. M. r; ^updatereadystate();/ |* I; E6 J. a1 O2 L
updatebuffered(); Z ]/ S2 @7 {! g! u, a: ~& L
updateseekable();
6 Y4 ]% e- V$ ~# k' ?3 Oupdateplayed();
% U/ T2 Z8 r, \1 }) Aconsole.log(event:emptied);6 A) ^4 N" Z' A
});3 U1 G$ [7 ]3 i3 X
// ended
7 [4 p3 V5 |8 w4 Oaudio.addeventlistener(ended,function(){* S- W m5 h+ Y7 e
updateended();$ |- K8 e: x" \; {9 B; y R, r5 W
console.log(event:ended);
% M7 V' u2 z* H});
, V1 i4 ]2 R7 m0 v// loadeddata: P/ ^2 h7 ?( R
audio.addeventlistener(loadeddata,function(){
j$ B! r% ?0 f5 f" H' aupdatenetworkstate();2 W a- U% O) m
updatereadystate();7 R v) L. d$ I- N) Y) C. A8 [
updatebuffered();2 e3 y. a" H4 ^" A* A4 W+ z) P
updateseekable();
" A4 j# d- V. S3 F7 pconsole.log(event:loadeddata);; k8 Z3 `' Q/ x, t
});
0 [' r; |4 ~9 {( X) B2 h' E) C. T// loadedmetadata& j- P" n- O7 i8 T- S; s- l
audio.addeventlistener(loadedmetadata,function(){
2 ^3 y% Z7 m5 i# X' @6 Kconsole.log(event:loadedmetadata); S5 X% h. }, y/ Q/ g3 I
});9 |0 T8 T. H, `# w9 ?, d
// loadstart: M0 P# g5 R* r4 T( f2 l
audio.addeventlistener(loadstart,function(){8 k3 Q6 s# I/ H0 C
console.log(event:loadstart);& h( A3 T1 E4 }2 `5 t
});
) }. k- O0 p0 ?4 g// pause
0 {# E8 J+ X( i" b4 k0 Oaudio.addeventlistener(pause,function(){
0 k' k% l7 C% E0 Z$ ]updatepaused();4 P% t' v/ T1 o
console.log(event:pause);
S0 p1 }1 a+ z1 M});. _5 F* h! _9 Y) Z+ z, H5 h5 a x9 b
// play
2 e( q; \4 S8 z( O8 z7 Baudio.addeventlistener(play,function(){
% C8 H6 S( ~) Mupdatepaused();
& T% a9 Z) v. U' k/ Dconsole.log(event:play);3 O Q. O3 }+ C1 x8 v
});4 j' N3 a* g! \8 ~! K5 R
// playing( M [5 ]" p$ e* H9 a; v
audio.addeventlistener(playing,function(){ X, M: x0 O% v1 t5 i
console.log(event:playing);
i, D4 {3 |) w) O) O});! |. t# K8 c5 A% F
// progress- l5 O4 G+ ^+ `. ~# v% {) K- S4 v
audio.addeventlistener(progress,function(){
4 @, g" n& O1 }" {: Jupdatenetworkstate(); J, W( G s r# ^% q- F' l1 N
updatereadystate();
+ R# j8 F& ]$ t0 \6 G: Q$ q, v" hupdatebuffered();5 Z* B5 k, p2 \- s ?, U. I
updateseekable();- q; \' v8 I; A, p. F6 A
console.log(event:progress);; S4 ]7 W- _: m4 L( h: q* ^" |
});
) n8 j9 s8 Q& h5 s' B' U// ratechange' n+ L4 E9 X5 S0 u: [2 e
audio.addeventlistener(ratechange,function(){
4 Q P; u: L: N6 O) uupdateplaybackrate();9 X* k4 N7 C# o" v* V0 ~: a9 B3 b' N
console.log(event:ratechange);1 Q) c# l4 q* ]+ ~# t# N( |# o1 M
});
& H1 h* s: ^7 }4 j% [5 d r! U// seeked, a f& N8 b' C6 }3 i4 {
audio.addeventlistener(seeked,function(){# ^7 t: T+ ~* L0 w$ `4 z- b
console.log(event:seeked);
1 a2 K- J" L2 a, Z# }% N});
7 x- V8 R. ~. I4 _4 P) @// seeking4 h6 ]% V8 C2 Y) B. w* s+ T
audio.addeventlistener(seeking,function(){
4 T. c6 r; } o0 {" J5 hconsole.log(event:seeking);
) N. ?* f9 |5 ^6 m; u}); M s" x N: {8 `
// stalled5 l6 i7 h) z, H S- y; \, G
audio.addeventlistener(stalled,function(){
[" c7 c0 K0 Q/ K4 pconsole.log(event:stalled);
6 C0 N O6 u; S% Z0 F6 m) u9 O: P' L% C});4 d) H& E6 A' e) F& `, n* n! w9 q
// suspend
) B& r! \ O; H/ zaudio.addeventlistener(suspend,function(){/ A" t8 k: q0 w3 w- O# f+ n& n5 e3 c
console.log(event:suspend);
4 [7 R0 r4 E+ C- v5 a4 w});8 F B9 u9 n" R( m( z
// timeupdate
; D9 C+ d0 y( c* l4 Faudio.addeventlistener(timeupdate,function(){& M; O( J' w- c& K" {
updatecurrenttime();% u6 {" ?! B& o2 J
updateended();
4 j3 {8 F" H$ rupdateplayed();
1 z4 M1 c; N( n2 Dconsole.log(event:timeupdate);) l, p0 o8 H" u i; n+ `
});
- `! B3 ~' @( [% s, `7 k+ Z! a// volumechange
, r }! Z: q0 G1 \audio.addeventlistener(volumechange,function(){
, B0 {8 R: ], [" B! Eupdatevolume();
& _3 I% ]6 Q9 `' x, W* ~3 W7 t; Yconsole.log(event:volumechange);, H D' e9 H5 J, J( M1 i
});8 p) l5 ?8 t& P& u2 d( K3 Z! `
// waiting
; {6 i, g1 K3 faudio.addeventlistener(waiting,function(){
# ?$ `, r- u" }* N, F; Iconsole.log(event:waiting);. n7 z+ q p( y7 O% z" C* W' t1 B
});
$ L& O$ X/ O, K* q9 U( W" Fupdateautoplay();
; K. k, X* f7 _. u, z$ V0 A' Uupdatecontrols();
! ]' d( [& w; O7 Oupdatedefaultmuted();( K! G, }6 I( |! A% ] W
updatedefaultplaybackrate();* ]2 T0 ^( U+ k2 N; J2 W
updateloop();
! I* V1 E7 ?' xupdatepreload();1 J$ q, Y, X2 b" T. }# r5 W
updatesrc();' C8 V4 }. z" L5 |4 H
updatecurrentsrc();
/ v* p% ]2 m9 v2 d1 Jupdateduration();
, G8 \! q8 U6 Y+ N; Uupdatecurrenttime();
+ |! @- v& C- Bupdatevolume();
8 E; g3 r* V# o7 tupdatepaused();
O! Z' W2 U5 d) Y# Dupdatemuted();0 d" [$ q- S* P. N
updateended();
( m O' l& O! [ ~& R, j oupdateplaybackrate(); i& |, j' n$ b5 {; p" v
updatenetworkstate();
2 R8 B8 U3 r5 Mupdatereadystate();
1 v/ H. V: r/ A6 |( K F) N* Pupdatebuffered();
% D" r0 A" l Q/ C+ z: H& v Gupdateseekable();5 u C* @$ h0 f3 [
updateplayed();
+ K- Q0 R9 e9 ]0 supdateerror();
# x2 D: d S! T; q) ^+ `- q% |+ `};! }& h# R* V# K3 w8 q1 o2 S
// functions to update info table
& W! k' j* I' S t: D& ]// autoplay
% c- V/ u' A: y3 D1 o% zfunction updateautoplay(){
/ B! V, ^( V3 q5 Zdocument.getelementbyid(autoplay).innerhtml=audio.autoplay;) j/ O9 M0 L, {! H6 J1 V
}$ ?8 ?0 H+ E- U; X3 `
// controls
" S& Q0 X: T% P& w; Tfunction updatecontrols(){& J& ~4 c) g5 \, _
document.getelementbyid(controls).innerhtml=audio.controls;, C9 `9 p0 `* U/ @3 y7 ^
}
0 I8 w4 k2 F3 i- O8 s3 }# C6 \// defaultmuted
' U5 C' V; u- Y+ Ofunction updatedefaultmuted(){
% a4 [' r# c Y; Mdocument.getelementbyid(default_muted).innerhtml=audio.defaultmuted;
! o5 P; p, r0 o) Q( x- _}
1 b5 J' o3 `2 `; \// defaultplaybackrate
& ?' L; G1 ?7 [! { s0 [' ?: f4 Wfunction updatedefaultplaybackrate(){" g) Q2 {! q6 R# T' p# m- [5 G
document.getelementbyid(default_playback_rate).innerhtml=audio.defaultplaybackrate;
4 n- P, K: ~: _}; V- a% e( w4 n% n/ K
// loop1 p: }" i Q; R4 R5 [: s
function updateloop(){( n* Q% J+ Z* u- ~+ z( j5 N! |
document.getelementbyid(loop).innerhtml=audio.loop;
' M- V0 m& p0 n: [+ R, z}
+ p3 @" G7 O& ]$ I* H' p// preload I! T& C) A' d
function updatepreload(){' B D1 m& _2 w' [0 T
document.getelementbyid(preload).innerhtml=audio.preload;
/ H% [ t2 p$ p- ~/ A8 v$ R}1 l: ~4 {) f5 N, D w' Q
// src5 x5 t& \3 X% _. D( E. Q) a# b4 e% Y+ T
function updatesrc(){! C. [8 n& K7 m3 u8 j& t( H9 G
document.getelementbyid(src).innerhtml=audio.src;
2 D! U, |7 N4 y7 @}- B! `7 O3 z+ T6 \- x+ z
// currentsrc
/ g2 @6 D0 O! U6 Efunction updatecurrentsrc(){
6 A0 Z; A+ {# F$ @( T2 ndocument.getelementbyid(current_src).innerhtml=audio.currentsrc;
6 Y1 ~$ k+ `+ j0 J$ S& P}6 M* d2 n, L' W0 I: N# h
// duration
4 R$ A7 H2 ]/ [/ v, h8 _function updateduration(){. q1 `4 G" f9 O7 M
document.getelementbyid(duration).innerhtml=audio.duration;
; k6 b4 x7 S, r2 m! Y$ s2 e}' J" v+ ?( G. ~
// currenttime' p$ b0 C0 [; d/ g9 d
function updatecurrenttime(){9 R4 @1 g Y; I: T! C6 j( D& M: X
document.getelementbyid(current_time).innerhtml=audio.currenttime;$ u! D9 q, @( V: s( l h7 v
}3 H. p# d! A$ b& u
// ended+ j5 p8 g1 v& D" I! R
function updateended(){, _4 \3 h" L+ J& p" A9 N
document.getelementbyid(ended).innerhtml=audio.ended;
8 m- Q z& n" _}3 f( W' L/ Q T
// paused1 A9 X& R1 t }6 l: B A* @9 T6 Q
function updatepaused(){+ |! V4 T3 Z9 f
document.getelementbyid(paused).innerhtml=audio.paused;/ |% M5 E! j( F1 Y& z$ ?
}
! p o* H1 i8 }// muted
; N% r* O" J- _6 E& Dfunction updatemuted(){% b3 Z) |5 d, I
document.getelementbyid(muted).innerhtml=audio.muted;% k1 l0 F# ?2 G
}
# z& J" ?0 I0 h: A/ |// volume* H( D' r" L: D3 b% t X
function updatevolume(){
1 Y6 t/ F* ?' V- ?: j: ?3 rdocument.getelementbyid(volume).innerhtml=audio.volume;; ^5 w0 R+ A& _ m6 J0 X/ M
}
3 U& H) I. X# }- w9 I// playbackrate* ~; J% M# b9 H) J& @" A4 X" [5 F
function updateplaybackrate(){1 p/ ?6 I" G/ V p! Z# B
document.getelementbyid(playback_rate).innerhtml=audio.playbackrate;4 |& M, ]5 {5 x; q
}
& y( `& @- Y- s: v) I$ j// networkstate7 h2 o, i4 b: g9 L) f. f5 q
function updatenetworkstate(){
/ `( O3 m: G/ f) I2 { ]5 p9 W1 Ldocument.getelementbyid(network_state).innerhtml=audio.networkstate;3 S1 x4 Z$ W( n2 W) L r
}+ u* I" X4 X g2 ^
// readystate
+ ]1 S4 a) b6 w2 lfunction updatereadystate(){4 E) o2 p; J0 y$ M* b1 C
document.getelementbyid(ready_state).innerhtml=audio.readystate;. J8 m+ N- {* f! r' A
} a0 A1 M( k# F8 Y% s
// buffered
( z5 ?* m& M1 R' N2 x* G5 y) Q7 Sfunction updatebuffered(){+ d- J% z2 H& @' d) G ^) Z: T9 {0 p
var ranges=audio.buffered;
& s$ ]( T5 k* z6 G+ E2 A, R( Y/ Uvar str=;
9 d" A- v3 Q l2 ?$ h9 K3 `/ Nvar n=ranges.length;
5 h; F/ o$ @) g0 ] s4 Tfor(var i=0;i<n;i++){
2 v9 ~! M" [6 @3 A6 S" ~& b8 \7 zstr+=(+ranges.start(i)+,+ranges.end(i)+);
" \& ~; U, b1 x# Cif(i!=n-1){
. U8 Y% }( t, c# Estr+=3 S9 l' D3 A( K5 B& q
;
) a1 ^ c) z' _% u}* }+ C5 H# p8 Z, ^0 Z
}! M. c( k# ]5 o. ~! y4 R' x
document.getelementbyid(buffered).innerhtml=str;
2 K, a+ @' a! R0 R1 ~}) E1 f* O5 U. }. Z% P
// seekable" q' p3 g" d; ~! h# ?% H& V
function updateseekable(){( d [5 }' X0 w$ a; I
var ranges=audio.seekable;
" l' S% Q5 j2 W$ P2 C* H+ Y2 G3 xvar str=;
\" [, b+ I2 Cvar n=ranges.length;$ H2 C- y. _* F
for(var i=0;i<n;i++){' K6 F0 `/ f, |) G" Z# J
str+=(+ranges.start(i)+,+ranges.end(i)+);
3 s0 z% ?4 S2 ^; n7 oif(i!=n-1){$ Y) `6 O" L& r9 b8 c3 ^( {
str+=
( |/ j. Q0 D9 @; O;
4 y0 s* _3 I8 Z# z; } E) b}7 _7 ]# a; i4 F% [$ \) R# C9 u
}* {8 ~4 i- j, ^! Q, q, r5 @
document.getelementbyid(seekable).innerhtml=str; a4 n4 e; ~9 E
}
- W# c9 s8 Z# D: P9 F// played
! `$ Y! H2 S1 ?. W4 g# zfunction updateplayed(){
2 _0 N6 X$ y: [2 v& Wvar ranges=audio.played;
8 B! R4 n# H R0 F6 Ivar str=;5 f" M3 v4 L. o' z+ t
var n=ranges.length;" ?5 |5 b, \" k0 m( v3 _' o
for(var i=0;i<n;i++){
$ {0 {: f# m: W1 ostr+=(+ranges.start(i)+,+ranges.end(i)+);) n7 e8 O3 o# j/ V5 b3 ^# ?( z
if(i!=n-1){
2 H* w, v- v G. R7 y1 U& T) Qstr+=
2 V8 H) Y8 r* |* q: E;
* p0 p, d4 H2 \, Y7 L$ h}
5 Z" e W% r5 O3 N* p( | }1 ~. v7 F}8 Z% C6 o; b0 K$ J7 @4 w/ O
document.getelementbyid(played).innerhtml=str;$ a5 t6 T/ P* k) n5 B
}5 ]! g9 {! I4 S+ u5 W. r
// error% a: g) h9 @2 T# N4 S8 P/ `( V
function updateerror(){3 L3 N$ E( g, x. \! Z( Y4 c
document.getelementbyid(error).innerhtml=audio.error;
2 N# t7 e' N+ f2 {$ U/ ~4 K, i9 R}5 T0 L: @* W1 x0 d% M Z
" m# r! h$ {. Z! v% f) _3 a4 u
更多网页制作信息请查看: 网页制作 |
|