代码如下:, L: H' S: O* t9 R, ?! I
<!doctype html>$ }8 a; L2 v! k; k Y/ Y9 K* x; J
<html lang=en>
% _/ V- l. _- X/ e! q' x8 w/ C& G<head>
]) m7 ?: U! v j( G: O<meta charset=utf-8>
# C2 J; E; P/ V<title>html audio api</title>' P1 E: G* v4 Z) z- O8 |7 c
<link rel=stylesheet href=./style/main.css />( V5 w2 D, r6 E+ u( s
<script src=./script/audio-controls.js></script>
7 l/ C0 ]6 L8 y( B3 g1 U</head>$ A- y; ]% i, k( \) y
<body>
5 j( x' t: ]) M$ S<header>8 o& k3 O5 x1 B$ a8 j: ^4 i: r* H
<h1>html5 audio api</h1># C4 @: E" O: B3 o9 _& `0 }
<p>html5 audio api demo by <a href=<a href=> target=_blank>learnshare</a>.</p> B" t" H8 K! b
<p>1 N6 t. P" q& g
last update @2013-04-23 20:40:00- I. Q- q2 J8 d/ o5 X2 p2 g
+ add info table! K% V) O- D( P$ W5 j# J
update @2013-04-22 14:54:00
& [2 m7 P% ?; M3 `: e+ add dom events8 \; D5 y6 D' y9 p9 c: |
update @2013-04-22 12:47:00+ y% u' b! ^2 E1 p Y
+ add getcurrentsrc button$ Q% T! l5 B. |" B/ v$ q5 Z+ e+ `) g8 z
</p>
4 `) z/ ~4 x G<p>
% N( R5 F. {& Aview code on <a href=<a href=>
9 w9 c: m7 r4 ^- W> target=_blank>learnshare.github.io</a>.
3 l( g+ `+ r2 `api reference: <a href=<a href=> target=_blank>htmlmediaelement</a> and <a href=<a href=> target=_blank>audio/video dom references</a>) ?0 B1 k, W" d
</p>5 l7 w. c. w( } O4 K' y- Q
</header>$ A2 z+ S$ Q N/ p& |" ?
<article>
5 O. F/ K6 g' q) V# c9 n8 f8 t6 D4 d<section>
2 k0 Q" ]! J1 u% k<h2>audio element</h2>
: [5 h; |6 U# |9 }3 y* \<audio id=audio src=./media/music1.mp3 controls=controls></audio>5 s! r" z( X/ }7 b0 W* v8 w5 j
<p>open the <strong>developer tool</strong> to view console logs.</p>
7 {$ F5 [4 S7 h, r! ?: d</section>
3 m/ c4 k% w. z' c4 E( W% ]<section>
& \+ l+ | E5 j' e<h2>controls</h2>
+ [ H6 J6 t; ] ^* U: z- C% T% u' M<button id=play>play</button>
( d W- V) `" V1 R; ~( L9 C/ _<button id=pause>pause</button>( j8 r- L% [& s
<button id=get_paused>getpaused</button>
1 g7 c- A: x) | Z% e- q/ Y<button id=get_ended>getended</button>8 r" A3 g1 O/ C0 g; G1 y: R9 @
% f9 K0 v& ^ @# z! e! ~( m
<button id=volume_down>volume-</button>
" W* a) x4 J$ f/ b<button id=volume_up>volume+</button>
# Q% k* ~/ L. E, P2 [: z<button id=get_volume>getvolume</button>( V$ E0 {8 f( P8 }
' f5 c8 P' V4 P4 J! ?* N
<button id=get_src>getsrc</button>
: I0 }( U* V4 r( Z* g4 w2 z<button id=play_music1>playmusic1</button>9 H7 H2 \8 W; K; d" g% e& {
<button id=play_music2>playmusic2</button>
7 v0 T- ~; Z J: a+ ?4 d<button id=remove_music>removemusic</button>& J2 }, O5 R6 c; [8 g( [- ], H
<button id=get_current_src>getcurrentsrc</button>0 ?( W n3 l, V G, H$ o
( n9 D( N! C2 Y7 v
<button id=get_initial_time>getinitialtime</button>. @3 x6 E, r7 h i) j/ m- W
<button id=get_duration>getduration</button>
& w' x$ y0 u0 c<button id=get_seeking>getseeking</button>7 a$ o% @' v1 X0 B* i
<button id=jump_to>jumpto_30s</button>
5 D6 T) C/ c6 F# C$ _+ H4 ~<button id=get_current_time>getcurrenttime</button>
0 W& g% R( b+ I$ l% i<button id=get_played>getplayed</button>
, p6 R2 Q2 H" E- O5 |* X
5 B* _8 M2 U" r9 S2 X<button id=autoplay_on>autoplay_on</button>; ^* h% m* F! Z& F0 Q9 ]- a
<button id=autoplay_off>autoplay_off</button>
4 Y) M3 x' O2 k: Z$ A7 x2 w<button id=get_autoplay>getautoplay</button>; x& n: z* a- L3 \
7 f' M3 H- b+ h- X
<button id=controls_show>controls_show</button>2 [; ?, G% f" w- O
<button id=controls_hide>controls_hide</button>7 Y- Y! P8 ^2 M0 c
<button id=get_controls>getcontrols</button>
0 R, e' x* J: ~! D# P d0 `0 i$ Q1 q |* P& a. K. [, E
<button id=loop_on>loop_on</button>5 T) j5 _9 D$ i1 Y- Z+ D2 l& _
<button id=loop_off>loop_off</button>
) h0 m$ G, {4 a- d- u8 ~<button id=get_loop>getloop</button>! V4 O' d: S4 c$ w# d9 u u. k
+ X# d3 V" a" u$ G6 f
<button id=preload_metadata>preload_metadata</button>
2 n# v7 c4 M1 c<button id=get_preload>getpreload</button>
4 `5 ]" w7 f8 S+ h/ s* J: t6 M
0 L' t- n& l0 k; p<button id=get_default_muted>getdefaultmuted</button>
3 o* j X8 O" g' S4 q3 E0 I9 I<button id=mute>mute</button> ~5 u5 l8 f, F
<button id=unmute>unmute</button>& n- a( }& k y: p: y5 p, w
<button id=get_muted>getmuted</button>
# v6 _* A! D3 Z E: ]3 M4 a6 d! G' z. f- i- s H) A( k0 j
<button id=get_default_playback_rate>getdefaultplaybackrate</button>
. T( Z$ o8 n6 {<button id=playback_rate_down>playbackrate-</button>
* R3 `6 A) K+ v- o- K( i M, N+ z<button id=playback_rate_up>playbackrate+</button>
" ?! `. R- y6 `<button id=get_playback_rate>getplaybackrate</button>
1 L* G ]6 E; G
* X2 n& h! t. p% {. m<button id=get_network_state>getnetworkstate</button>
2 Y- o, {. p) a- H3 W<button id=get_ready_state>getreadystate</button>! |5 ]" m P$ ?$ L* o
<button id=get_buffered>getbuffered</button>
& ]" y& ^9 a5 V<button id=get_seekable>getseekable</button>
$ P3 Z- a; ]& ^2 c</section>
~! I% X0 ?) E. e: ^1 H& L</article>% F5 r7 ?; z+ r8 f) a& g: S7 v: t* c8 j
<aside>4 V# I. c3 L' y4 L' }9 K& b9 D; _
<section>
' w8 e' r; b1 B* i4 V<h3>player attrs</h3>
( g/ x/ t7 |, f" f q( p<table>& V8 c, j. S0 \
<tr>
( \* }( x A7 \) T& \( }<td>autoplay:</td>2 _9 P/ X) @3 ^! N2 ]- h
<td id=autoplay></td>
7 s; v2 Y! b2 A& n( h6 D. \; r</tr>) J7 |3 \; F7 R1 m: \7 o
<tr>
/ i: j4 U( x1 }<td>controls:</td>
1 m" W" v( P$ I0 U. J<td id=controls></td>
* t T; o0 l6 |</tr>( N( W, Y: m9 X3 {
<tr>1 G0 m8 Y X. \. ~# P8 K
<td>defaultmuted:</td>/ c3 `- k. p5 C1 r" N5 J. g
<td id=default_muted></td>
3 h0 D: h2 c9 \0 s) n</tr>1 p( i/ f# y6 u
<tr>3 g( C4 f3 M: x9 p& |( G. X: R
<td>defaultplaybackrate:</td>
9 _ D/ h0 l( Y3 i<td id=default_playback_rate></td>8 K7 h2 l3 e6 e2 f
</tr>7 W% U+ c: v! O: E5 C p
<tr>
# ?; P) {$ T; E<td>loop:</td>
9 D/ S; A0 `- a( s, ^ K& ?<td id=loop></td>- t+ e8 I; R" r1 t. R
</tr>& i0 B7 f3 m' L' ?& D9 s5 u7 y$ j# \
<tr># T5 f' b* Y# _# s( Z9 [+ k
<td>preload:</td>
0 u; L* h9 o, m' j7 _# {% S( m<td id=preload></td>. v2 |4 T7 p8 y# v' f# |
</tr>& U- S F6 {: u3 ]; [
</table>/ J& Q" t V! {' k$ o4 Y' a
</section>
$ y, t% f0 g/ i& K" \8 ?" @<section> s e; d0 l: f; C) t/ T( h
<h3>player info</h3>
, D6 g8 ^% T+ _<table>
1 ]7 ?' P7 q3 @$ e, g9 _3 F9 Y<tr>& u$ Z8 q2 i2 W# r6 F6 E( t) F
<td>src:</td>
$ ^* b; H5 R' h8 Y3 y% y0 `<td id=src></td>
! g, O( R0 Y* ^0 ]; b4 ?</tr>* ?, K, l* c! |! x) k* _
<tr>
. G8 {' q }% d! k& e& \<td>currentsrc:</td>
8 X# ]+ c4 t5 \7 z+ _3 V<td id=current_src></td>
# ^- ?; E, H5 i* c7 H</tr>8 |7 r& s0 \4 Z
<tr>! `8 ]1 F4 i6 l
<td>duration:</td>
% E, g7 A& S: h" g- Z2 k5 D<td id=duration></td>
' n; k( @/ M& H! F2 u2 n9 ~3 }' ?</tr>
. F, t* Y' u$ h# ^' ^<tr>
' ~6 b% W# u$ m<td>currenttime:</td>! l. W! z# H1 Q% h4 ]6 F
<td id=current_time></td>( K! T4 I. w# x9 ~) S% h/ b
</tr>- d5 c# v: S& v& `' y3 G
<tr>
3 W- I4 o/ n2 B* d* h: K; m! Y; z9 E<td>ended:</td>
/ R2 e6 o4 L5 M% Z( r& [<td id=ended></td>
v: x3 ]& a( m# B6 Y. ~) t</tr>' V) y6 Q3 h1 h* N) A! g; ]" l$ c
<tr>
! `1 s! d6 n9 \# a<td>paused:</td>
4 q r# |# r2 q$ H# @<td id=paused></td>6 t5 M) K6 m1 w/ O, Q: g+ H2 N* T+ \
</tr>4 \+ V; n" ^! s0 o* F; S4 W, b
<tr>
' ^. ?+ P! X1 a) n0 b2 A7 `1 O<td>muted:</td>
6 ?7 |: r! G' e$ H9 W0 g<td id=muted></td>5 j, ^. t8 G7 [% q
</tr>; U" G7 j; D! y) J+ {; Y$ q# G
<tr>
5 ~( _1 O& C6 l<td>volume:</td>
1 a& {8 [$ o' x9 a% x$ `# d! i<td id=volume></td>
: ~: B: K1 v6 e3 w</tr>, E9 g" y6 H- C9 C
<tr>
( a& m4 j& j9 {0 p, K<td>playbackrate:</td>
+ t( k& U; {& {9 l<td id=playback_rate></td>6 M) T3 {3 C/ m" \7 x; n3 D
</tr>
- n1 {9 x) F( o! R9 u; ]+ X</table>
- o* C1 \( E8 @% `8 v% h</section>- \7 @* n- g- ?# Y+ b
<section>' r! W* S" I7 Q7 Q$ U
<h3>play status</h3>
: d8 o+ V, T" Z9 \<table>
* E: T9 p7 o- ]$ Q2 X e b, K( o- X. x<tr>0 l1 w: F* h1 Z- P
<td>networkstate:</td>8 @1 v2 d' X r6 u
<td id=network_state></td>
3 S- @, \7 Y" Y4 w; }9 s</tr>
' X$ H) p+ U3 Y6 y<tr>7 n7 ^8 L+ X* o
<td>readystate:</td>: M) F5 y! i% M$ T, J1 n
<td id=ready_state></td>1 Z4 B: D2 q! ]2 w, H3 O+ G6 k
</tr>
- n5 q& }) B% |3 v. N<tr>
( R2 M, U$ ^* e9 v! T+ {3 W# f( }<td>buffered:</td>% E& e5 c4 O3 E- J0 W& {2 U
<td id=buffered></td>1 d- C! R6 ^7 `/ Q6 c0 v V( F
</tr>
2 i$ W) C9 _& |) z. k0 d6 X<tr>
% J# K! J& v; v, |# v7 D<td>seekable:</td>
7 O: Y) t$ o% k8 [<td id=seekable></td>
) a4 s# X) a3 t% `) I</tr>
! F+ `9 j: J9 x<tr>: m) |- P7 a9 Y! G6 i) s
<td>played:</td>- j5 f2 E c2 G" }% Q
<td id=played></td>' }( \) J7 t4 n( h( I
</tr>
% s8 n/ H P" f- Q1 B2 C: r<tr>4 M* }9 l1 R& ?9 L
<td>error:</td>
& m; _8 a0 c; r, f8 W" U<td id=error></td>
7 N0 f$ N; G, j1 O</tr>
?0 F! j& i; E5 ?2 q</table>5 i1 k# r0 b! t7 ~
</section>% q! S! }2 y5 W
</aside>5 ^, W4 R, s1 ^* ?0 `' y
</body>8 q: i s8 m8 U! s7 [
</html>
: a+ ~# u4 L& t' m! f. b+ R1 c% Q# `+ [3 H
audio-controls.js7 d- F" p' H6 y/ s' `9 f+ M0 ~( E
3 M% |8 ~# b8 d( w3 _: }5 `代码如下:
9 b- N6 C$ ]. t1 D% v" K5 n |window.onload=function(){
: p9 E* j$ C+ G// get autio element) {$ R* |& y" f3 p3 N
var audio=document.getelementbyid(audio);& L; S9 a+ d$ q/ B) v' x
// play()
- \$ x' e8 b" N7 z! gdocument.getelementbyid(play).onclick=function(){) `5 K8 |& y, S
audio.play();
* ~8 V5 f3 c7 U2 a& b/ Rconsole.log(play);- o2 C3 g9 K5 d& S# P
};# a) @# ]/ M, P! ^; H& z
// pause()
6 w) q N: w$ _! F, b5 tdocument.getelementbyid(pause).onclick=function(){
' U0 ^5 E$ N) `3 @2 p: w! M9 E% _audio.pause();
' ]1 l/ p) U4 h, l; D" R: V9 dconsole.log(pause);/ ^9 n2 F" T! \) B
};
+ z4 o$ f: y" N$ d |// get paused2 g# |; G" T, v9 X# \; F# H
document.getelementbyid(get_paused).onclick=function(){
) O9 C0 r2 c& ~5 Fconsole.log(audio.paused: +audio.paused);
1 b" V7 q2 B* D7 {& B& G' V};
1 x7 u$ ~ f/ I7 U7 L$ h// get ended
+ a B: V# W* a6 D8 M: F/ r/ \) R8 qdocument.getelementbyid(get_ended).onclick=function(){: L2 C* |' W5 e2 C# ~
console.log(audio.ended: +audio.ended);2 [$ I; Q, a* W @; v
};
# U% @2 v8 V6 _2 A// set volume-8 i. J- [/ q- U6 N2 d$ S k
document.getelementbyid(volume_down).onclick=function(){% R, v8 J' T( k/ S
audio.volume-=0.2;* a4 M( `- Z: _1 S
console.log(volume-0.2);8 N0 p: f: \8 S% U
};
1 ?0 l2 m1 n1 i( A// set volume+" O6 u5 H) T) A) b- N
document.getelementbyid(volume_up).onclick=function(){6 G" w) B" K3 ~# J) `. [7 e
audio.volume+=0.2;
( O" }: z0 n' a' D" p2 bconsole.log(volume+0.2);
# x' A6 W* |: N) X1 e9 Z};
) N" ~8 Y4 l( J// get volume% |) W# Q3 ^% a5 H: B$ g: E
document.getelementbyid(get_volume).onclick=function(){/ E& Q- I) P" C: {8 r, _/ h- a! A
console.log(audio.volume: +audio.volume);, M' x$ ]" C/ j0 G h
};
8 B9 j( A) _ }// get src8 j1 a2 o$ }' V g, ?) G/ k0 @
document.getelementbyid(get_src).onclick=function(){
5 Y0 P0 @, Z a) Cconsole.log(audio.src: +audio.src);: K! O$ t! U4 Q( x# q; \3 H, H5 r" j- H
};1 B5 e3 p, h$ J# m, f2 v
// set src_music14 ?0 q9 _( w, n, R! V+ f0 x& n8 Y
document.getelementbyid(play_music1).onclick=function(){) x4 ]6 {$ T% {' T6 v) |+ u
audio.src=./media/music1.mp3;1 |# k; C4 a3 n1 A9 _) s
updatesrc();& Q0 S0 k, Q+ r8 d) }/ L
updatecurrentsrc();8 X$ ~% H: m; b/ V: @& Y4 _
console.log(play music1);
* @. V5 r, a3 J6 j1 }4 V};
4 P, w3 D& z7 A! \1 Q! e0 f/ A// set src_music2
: E I! M, m0 a+ W: \8 Bdocument.getelementbyid(play_music2).onclick=function(){; {, P' W. m8 G
audio.src=./media/music2.mp3;
- Y5 h' y' y( [; D3 _$ _6 }6 V8 V/ ]# Dupdatesrc();4 ]/ M& A: _) O- B/ d
updatecurrentsrc();- f0 v* N0 T. p }0 V
console.log(play music2);
4 z' E1 l+ Y6 r+ x};8 x( b/ v q( [. M2 ]2 L% K
// set remove_music
; I' J s7 j# A2 M' ndocument.getelementbyid(remove_music).onclick=function(){
p, _9 I4 J1 c2 K+ j) Caudio.src=;( B; [% ]; n" D- \) [
console.log(remove music);9 M, a/ H% G- o) B, |4 `. t
};
3 y6 t, U! {; a' w5 g6 p! l" u// get currentsrc6 e! r- W1 W, b" G( D) r
document.getelementbyid(get_current_src).onclick=function(){. q5 M- a! a Q: x9 y# C8 i
console.log(audio.currentsrc: +audio.currentsrc);
; f% C3 ^3 P( ]" p};
, C, J: j. i! ~1 {// get initialtime
, Z o9 o, u5 k, [- ldocument.getelementbyid(get_initial_time).onclick=function(){9 W5 [: W9 W, [1 l( u9 s1 Z8 r- I
console.log(audio.initialtime: +audio.initialtime);: b, I' y/ n+ g8 d
};/ E" w, b6 A- [# j% k5 s ?2 W4 |
// get duration
3 U; A6 B: w3 z: R% `8 D- M% ^( w. ]document.getelementbyid(get_duration).onclick=function(){
, h3 H4 p* @/ z/ o( Lconsole.log(audio.duration: +audio.duration);3 y4 W: G! U* }
};
% n* U" p( d- ]0 a& I/ a, p. U. t// get seeking1 a) ~+ p* v7 Q, K. `7 q5 Y5 v
document.getelementbyid(get_seeking).onclick=function(){
3 ^/ ^. m+ J fconsole.log(audio.seeking: +audio.seeking);
7 k( ?# J& x: z4 E1 ?! [};
( W* z8 `9 f8 R- [8 \// set currenttime
" w% ?. N0 ^& K( O, u; \: vdocument.getelementbyid(jump_to).onclick=function(){# t: s% Q. O& q) G) K
audio.currenttime=30;
* _, w9 O6 w( {$ ^. L0 Z% C) pconsole.log(jumpto 30s);2 N* P1 Y3 y( X
};: _4 W* p) G5 S. C5 S
// get currenttime
' ~. P7 C l8 K2 K6 B; D Fdocument.getelementbyid(get_current_time).onclick=function(){7 P% {* c: k b1 a' X
console.log(audio.currenttime: +audio.currenttime);% C. V$ A! y4 J9 {
};2 t- z7 n3 D' K6 r; V5 w {
// get played2 m. N; O( ?6 R! D
document.getelementbyid(get_played).onclick=function(){
- h" I& E+ C- }3 x$ V2 g {1 gconsole.log(audio.played:);
! t! P3 D0 E3 S$ Ivar ranges=audio.played;
+ p7 r0 H$ @" Zvar n=ranges.length;/ U( P$ J2 p8 u9 t6 W$ e
for(var i=0;i<n;i++){% M" K5 Y5 `) U
console.log((+ranges.start(i)+,+ranges.end(i)+));; ^9 N, L+ E# t% m3 c# Q
}
: N! x# k, C* c; W};- C' n: C2 u. g$ R
// autoplay on# f8 }, E, v- A1 \* Y& \" X
document.getelementbyid(autoplay_on).onclick=function(){5 d, ?, o, g/ u" a/ ^2 u8 q, V
audio.autoplay=true;9 U( E3 d. M6 R$ `
updateautoplay();
! l$ q8 k" @6 [# O5 d* v9 Mconsole.log(autoplay on);
I6 E8 h: L; d5 R};- Y1 p; D/ q# A1 U' d: D# q
// autoplay off+ c2 x' y) W6 U" n
document.getelementbyid(autoplay_off).onclick=function(){
+ q) E6 }" v8 M* J# p& Caudio.autoplay=false;
& Y9 ^9 ^1 I. J6 S3 Y: aupdateautoplay();/ D' s: b% Y! X) [
console.log(autoplay off);
( u2 x2 U) s) ?: N/ ]3 x+ M};- r. s* w( O8 m( Z2 J- ~
// get autoplay( }5 B+ D) s; @: p
document.getelementbyid(get_autoplay).onclick=function(){& [9 I) X5 F5 b* |5 e6 ~
console.log(audio.autoplay: +audio.autoplay);
" g9 a! B, Y5 \' S! p. f1 c};
" E1 i, r) W6 C5 {" R$ }// controls show/ ^% z2 f+ ~) x2 @0 }
document.getelementbyid(controls_show).onclick=function(){' r! V3 X" i5 N
audio.controls=true;
# {; o) d& G. z4 K0 eupdatecontrols();
{3 G7 Y5 P8 a+ A+ A) Iconsole.log(controls show);1 c" k" T* X$ @: B2 |7 G
};9 W) l1 u: w8 j8 w) K# @
// controls hide
$ ]# s4 r7 ~+ _& Ndocument.getelementbyid(controls_hide).onclick=function(){- J' Q; `9 p. ]0 @
audio.controls=false;
8 i& i$ B$ D2 _2 f, \7 K7 jupdatecontrols();+ P) v2 y9 j5 N$ d; G% q4 t
console.log(controls hide);2 p C. f- c" k/ _' o8 F
};* L+ V6 N8 d3 T9 [. E
// get controls" s$ G6 ?6 k( g. A* }/ }- y* l( ?
document.getelementbyid(get_controls).onclick=function(){
" ?. |8 N! q& c2 }5 u9 Vconsole.log(audio.controls: +audio.controls);
, H- v! |) `3 h4 i4 K& U! {};( [$ l+ j2 O, D5 m. D2 N
// loop on! a$ {8 _8 {" j; { {
document.getelementbyid(loop_on).onclick=function(){; r: ?/ b. [# o1 ~" S: v. L1 }
audio.loop=true;
5 O2 f8 ^8 W% ]8 B# H. p, G! lupdateloop();+ k k) v1 P' D0 Y5 L
console.log(loop on);
/ T2 ]: g) x5 a};( ~! d9 Q' _. g
// loop off% c+ i8 N* Z* K! I* h8 ?: U
document.getelementbyid(loop_off).onclick=function(){
- J3 k# x* ^2 F2 ~% ]+ G% g* _, I1 ~audio.loop=false;
0 e) ^; \9 ^7 m) N b$ H/ B# yupdateloop();; e: ~& v: c7 S7 P3 f. l; `
console.log(loop off);
/ C, l; \! t' y; S' T* ?3 F- ?};
: `, x% [: a" E( o: W/ K// get loop4 c; ]! v0 O* d; t0 |% a! q
document.getelementbyid(get_loop).onclick=function(){0 w# \5 L: @$ y/ ~
console.log(audio.loop: +audio.loop);
9 z9 T6 U+ m7 U9 Z};
% i* `9 l/ P( U8 l* S// preload metadata
0 f' H- o9 u- l6 V( D; C. tdocument.getelementbyid(preload_metadata).onclick=function(){, [) Q6 I- K$ c
audio.preload=metadata;2 D5 f! {) I' ^# O j. I
updatepreload();& D4 r* ]0 K" n
console.log(preload metadata);9 U j/ k# \) t) E& f! a
};1 M9 |1 @2 Z# M# T7 X& t) T1 a) O/ s
// get preload
5 P1 B4 Z# M% h! u4 B o8 ddocument.getelementbyid(get_preload).onclick=function(){
5 u z$ G: C8 A) _3 ]. @console.log(audio.preload: +audio.preload);% p+ L' M$ F3 M B: E( V
};; {! J! W) V! e* l- R
// get defaultmuted9 A& g, ?: H( z
document.getelementbyid(get_default_muted).onclick=function(){
! ]2 ~" H3 A# @* Q7 Y. a- oconsole.log(audio.defaultmuted: +audio.defaultmuted);
. I* g. H1 g+ ]: W3 m X};& r- H& t7 j/ g) |9 T4 u
// mute: B0 b0 f: N1 z) v1 Z
document.getelementbyid(mute).onclick=function(){, U% G# y1 w2 h" e/ m% O
audio.muted=true;
! S+ w+ d$ M4 \. ]5 k: h2 ]updatemuted();
) d: ?, T# R3 i- @% f+ kconsole.log(audio mute);4 v, ^* X" f3 [# F& }5 T
};1 c4 P$ \6 n5 t5 [, D
// unmute
3 v8 v3 o r( C7 e V7 x& ^document.getelementbyid(unmute).onclick=function(){
5 C3 N: V4 O0 uaudio.muted=false;/ T" n3 t$ O( D5 G5 c5 M( y
updatemuted();$ J# H0 G7 ^! @* `9 ?
console.log(audio unmute);* U _. J- U3 { }" r6 P
};9 n( X( K" D- G5 z+ [+ ^) u% F
// get muted
0 r; w6 s' [$ m$ J1 V. K/ ]/ Xdocument.getelementbyid(get_muted).onclick=function(){+ [% f, o; y. M" f# N5 D$ c) a
console.log(audio.muted: +audio.muted);
5 ~, a2 v: y6 O* ]& X6 \ S, p};
. q1 n% @9 `( H( h// get defaultplaybackrate
' E) ^1 `4 T# i1 W; Gdocument.getelementbyid(get_default_playback_rate).onclick=function(){& c Q5 r! s! y- Y: T
console.log(audio.defaultplaybackrate: +audio.defaultplaybackrate);
9 c# l1 e, C6 F x};
% S- F4 A1 I- `$ h3 K8 s; @// set playbackrate-
5 t* Z" C3 U2 m pdocument.getelementbyid(playback_rate_down).onclick=function(){
# j5 Q& k5 g; k5 Q2 ?) @% J! ~audio.playbackrate-=0.2;& ~4 _5 b' T. {3 ~8 j4 \
console.log(playbackrate-0.2);
, X1 O! x+ n/ Q4 |};
4 |# @5 y1 H0 j9 r# e' C1 q/ B7 A6 c// set playbackrate+/ f; C4 `. V& p8 D
document.getelementbyid(playback_rate_up).onclick=function(){
, x& i7 Y) l2 e5 B/ f7 Saudio.playbackrate+=0.2;
. S, A( u/ M- S; g0 q n* Pconsole.log(playbackrate+0.2);' }/ |; l& u) x0 g1 g- c1 L1 I4 E
};( t5 t. W K5 @
// get playbackrate
2 R7 ~$ u! W- z- I: u4 _) z" kdocument.getelementbyid(get_playback_rate).onclick=function(){& C" B: g) |! C9 t& X* C$ h8 N- y$ F) w
console.log(audio.playbackrate: +audio.playbackrate);
! \0 z% t2 W! {3 O7 j};& | z( |$ n, t3 T
// get networkstate
/ D' k: U- S! c5 {( E9 `document.getelementbyid(get_network_state).onclick=function(){
5 J! e7 a. N( k5 k; Yconsole.log(audio.networkstate: +audio.networkstate);
9 }" U2 R% ]8 i6 n* @! G" r};
" y3 w+ l& D1 k. x* i// get readystate
8 q* x' q" f" e1 {document.getelementbyid(get_ready_state).onclick=function(){" H5 e9 R- }7 e5 Y+ |9 C4 L
console.log(audio.readystate: +audio.readystate);
' f5 A9 r7 Q( j0 F% G+ R" _, \6 a};2 E+ A- h! o9 |) k
// get buffered& f j/ }2 L5 r1 r l* y
document.getelementbyid(get_buffered).onclick=function(){1 q2 k* T, ?$ I% t! h F' g
console.log(audio.buffered:);
% j+ _# F# p; L3 j- E Q. {var ranges=audio.buffered;
9 E+ _# A) d/ w0 U& i, [var n=ranges.length;; ^# ^% P' F% A8 s4 L% q
for(var i=0;i<n;i++){
( V0 F5 I' K* p3 v+ zconsole.log((+ranges.start(i)+,+ranges.end(i)+));
1 \" F3 {4 F! ]}
4 F) w0 y a# T2 ]) O};
/ b( G7 }* Z& ^) L// get seekable( D, ~" g( T' ^: v
document.getelementbyid(get_seekable).onclick=function(){4 c7 U, u: R' m; G6 E+ V
console.log(audio.seekable:);
6 p5 g/ o& U+ m1 [ s; j% r( E ]var ranges=audio.seekable;: I; X1 r5 k5 I1 t# h; r
var n=ranges.length;8 Z4 A; @) p( n% E) w' h+ {2 ]
for(var i=0;i<n;i++){4 e* d: E$ C" t7 f* f8 h% ~
console.log((+ranges.start(i)+,+ranges.end(i)+));
c* U8 w2 C- w- ?}
" X: n6 I, R% v3 |) @/ w) W, k};
+ D8 u1 J( |6 F9 t$ I/ _$ Z- A// dom events
$ P+ p w/ h5 O% `0 y8 o) m3 b! g// abort, Z. c% S W4 ~
audio.addeventlistener(abort,function(){
7 _+ l, x; y1 I3 \1 V1 Zconsole.log(event:abort);
; d p" J# p( W' {- q" i6 X});/ n+ a5 C ]( ~3 E
// canplay* h' P `6 G2 T
audio.addeventlistener(canplay,function(){
7 j/ k/ @ W' [0 G. jconsole.log(event:canplay);' s9 w6 R- q0 z6 e4 d( U
});
1 \8 v/ T+ J" ]3 _2 M' b// canplaythrough
0 k( x: P( c! t- A, qaudio.addeventlistener(canplaythrough,function(){
5 l2 @& R+ F, A- r+ kconsole.log(event:canplaythrough);; c! e! X8 @7 J7 p& ]
});) G' o4 e1 J U7 k
// durationchange, u6 i( e+ D# |
audio.addeventlistener(durationchange,function(){& b5 a; I* w1 \7 O2 `
updateduration(); G" s+ g& a2 v0 m
console.log(event:durationchange);6 d. o: ^7 r7 H3 v/ ?) M; p5 ~
});
; K) g9 a: R/ ^% T: ?// emptied( y) I- l% r9 A4 Q1 i
audio.addeventlistener(emptied,function(){
- @' i0 m" w5 F: s3 ~1 B. }updatesrc();) R$ r8 ^% d$ l) Q- z' ~
updatecurrentsrc();) W7 \. ^; N8 w) H1 f
updateduration();
8 R H, k, s7 Yupdatepaused();
; S) R/ ?" g5 [* _* Z+ `; @updatenetworkstate();
3 Z0 \& K. z1 T! e* D6 I) cupdatereadystate();
% L' t+ H2 }1 E& l& L% j. Yupdatebuffered();
$ h+ j2 e# i& V8 yupdateseekable();% E( P! |. O' {, L5 P5 i
updateplayed();; ^* r7 o- |+ z9 Z8 h9 X7 N1 b: e& R% _
console.log(event:emptied);3 m6 O' c* j2 F, I o7 y0 t5 W% G/ K
});1 d; r3 L% b* c0 w
// ended+ Z, i& v- z; \2 Z* @+ X$ L
audio.addeventlistener(ended,function(){6 y- b, n8 B# N( j; S
updateended();
! E. D$ J! Z. A- a$ e% oconsole.log(event:ended);& N9 o5 S* j6 }) k9 v
});7 r2 f% E2 `$ H8 L5 e4 M# `
// loadeddata
" B: V0 N6 _) s p0 P3 o& Eaudio.addeventlistener(loadeddata,function(){
8 C7 f. i# v: B7 z1 q: a0 hupdatenetworkstate();7 w7 u2 h( \& |+ b3 m2 A0 P5 \% A
updatereadystate();! `* D8 ^3 i& [7 a$ x
updatebuffered();
' A9 F; d3 I. |: Z& w9 H3 I5 ^updateseekable();
9 N0 R2 ~, O/ ^console.log(event:loadeddata);* p" ]" P/ A; N3 c. ]
});
+ p% w6 F) T- X5 K. z// loadedmetadata0 g8 g* O" F/ X% T; z$ Y
audio.addeventlistener(loadedmetadata,function(){
+ x) X& ^/ W7 {+ z9 econsole.log(event:loadedmetadata);
! M* n; I- b) x});3 H- u4 S. p$ H) |1 i, `/ ^
// loadstart
, Y/ f3 E( ~5 qaudio.addeventlistener(loadstart,function(){
3 [- s; ^" s# m8 e) ^+ Z+ Qconsole.log(event:loadstart);+ }4 |) `/ @2 S5 J* y* [- A8 U5 C
});
* d: T) f2 q3 Y/ _// pause
) @: c# n; h3 j4 I- Caudio.addeventlistener(pause,function(){
0 T* b4 y* Y8 x- Nupdatepaused();
; U' z- n7 T1 {6 Nconsole.log(event:pause);# |( b7 B- K' a4 y# J1 D) H
});2 j* P$ ^0 _6 t$ M* D3 n
// play7 G) w# |/ H" G
audio.addeventlistener(play,function(){' q, q" e9 S' {
updatepaused();
* @7 Q, G/ V/ f L7 C/ lconsole.log(event:play);
9 E2 {) C/ F7 ^+ x' W3 ~! W}); c! u4 |4 P# S( O1 E4 ?0 Y6 r
// playing" x' V( t' u: n3 M
audio.addeventlistener(playing,function(){
7 n1 j/ U: U2 G% Z/ _" X5 Lconsole.log(event:playing);
2 z7 F) ~. U3 x/ Y8 D% ^});/ h0 w9 ^8 U6 q, x$ D6 E& I& Y" y
// progress
& G S- ]8 b* h% N2 y4 Uaudio.addeventlistener(progress,function(){
$ |* S K. F& s& t+ v, Iupdatenetworkstate();& A6 r! U+ I8 T7 D
updatereadystate();, U- g# |$ v1 {" E
updatebuffered();
+ t+ M& Y: w* \4 F" B( Pupdateseekable();
0 S1 e$ o4 k( H6 a( L8 jconsole.log(event:progress);' [# E% d. V7 G9 `& w7 `' Y9 a
});+ v; R) [& C3 M9 O
// ratechange
) W/ Q& ~ M& K& g7 P& ?8 h" aaudio.addeventlistener(ratechange,function(){0 Z6 H9 \; j H/ J. F
updateplaybackrate();1 D2 U' C/ R: {* I1 y
console.log(event:ratechange);
; m3 f3 o. I* t* C3 k+ Q9 d});
+ H' G, Q. ?0 [// seeked. D) J3 b' A( r1 W* s
audio.addeventlistener(seeked,function(){
4 i, T: u5 p; w' `3 G }+ [console.log(event:seeked);: M. r0 y/ ^. g% ^
});) }- N) A, V0 b
// seeking$ j% e2 p2 k& m6 f4 G; r& E% Y
audio.addeventlistener(seeking,function(){4 k2 P, k2 Z# t. N/ Q& A8 D$ D3 H
console.log(event:seeking);2 c6 s/ I6 ]+ G' f; c0 x. K. O
});
2 L v) z# P$ r3 {4 o6 l- r: z// stalled
, z+ o( L D7 B) P3 Baudio.addeventlistener(stalled,function(){$ h9 C2 @. q" g* B
console.log(event:stalled);
/ V |8 b3 e8 @9 `: i' J' a});
6 d* l* g( R2 {) B: o& _$ r( d// suspend
# ]7 ^. K$ ]" u! n _3 Iaudio.addeventlistener(suspend,function(){
8 J; u) d* P0 F+ Q; o* _) Rconsole.log(event:suspend);6 s5 Q4 m7 u7 Q, G4 F. P! v
});
3 w* d9 C* `, r- o6 R% h// timeupdate) e F ~' o; E
audio.addeventlistener(timeupdate,function(){. ^9 X+ P( ]; A
updatecurrenttime();
, v; V7 z1 N$ A" g% Uupdateended();0 w' ~& O) } ]+ y
updateplayed();" r5 `6 R. O% D: o1 l& _" E
console.log(event:timeupdate);
9 \# `) C* e* D* N; y});
, u% E) W7 n, w3 ^6 D" z// volumechange
: b4 U$ K. O. J5 B+ s, Paudio.addeventlistener(volumechange,function(){
4 ]/ A" ]: z. L) R$ yupdatevolume();
5 R" t9 E: \+ q2 rconsole.log(event:volumechange);
0 O% F% x2 g {7 t$ A( {' L});
6 v Y' f) s9 k" l# B! A' g// waiting! k3 n, s7 q H
audio.addeventlistener(waiting,function(){) t* `4 v* B1 H/ y2 W+ n s
console.log(event:waiting);
' q7 p4 B6 _! c7 E! V+ S});
% o9 E7 P5 v& t$ ?/ c/ C H7 e0 wupdateautoplay();
* k- Z* I' t2 `5 e v5 ^ |9 e3 Q! Gupdatecontrols();
0 B0 H8 D4 \, c. l' ^, yupdatedefaultmuted();0 e1 g( X. W! V% ?
updatedefaultplaybackrate();- \5 }, M. w& b8 D; l! v
updateloop();
, V/ N/ c# I2 y0 `5 ~. g$ xupdatepreload();2 D N% ?3 [2 R; C. L1 ]
updatesrc();
! j+ ~, w& D$ s. \ d l+ ^" `5 oupdatecurrentsrc();- y/ @3 D* ]! C
updateduration();5 n5 p2 s; b$ M. O: R3 C
updatecurrenttime();
( H$ v0 S' j# N2 _. N, M" Bupdatevolume();2 s- V, s: c5 I5 D2 P3 |: Q) V
updatepaused(); O2 B- f6 N3 T0 f& h% B% t
updatemuted();" ~3 @ ]- n- {: z
updateended();
: y! G' [" a, t" W& @- { Eupdateplaybackrate();
& O x* c4 ~9 cupdatenetworkstate();1 {# F7 [( w! W" G3 B0 |/ i4 c; l
updatereadystate();0 M* n* A9 C) K, {3 P
updatebuffered();1 i# h; r$ K {# a9 e
updateseekable();
# O6 h1 q1 ? ~ m. e/ G4 mupdateplayed();
3 J5 X# F- T4 t F+ o$ [updateerror();, T+ P( c' S- _6 @- @5 I2 \
};
9 e7 S/ u* v( H# b$ @' j, k// functions to update info table
& L. l- S; o: y9 e0 b+ {! ?// autoplay
% i* o* p6 D4 H8 L t/ Rfunction updateautoplay(){
" U% E$ ?( O5 V- Rdocument.getelementbyid(autoplay).innerhtml=audio.autoplay;
4 U# Z2 @; Z. w3 B}8 v; O4 b+ m" {( z! ?+ @ @
// controls
- U% \7 a7 @, y% afunction updatecontrols(){6 ~( J( e1 U; Y8 j/ S
document.getelementbyid(controls).innerhtml=audio.controls;. K4 w8 u- F5 J! ^
}
5 e, r2 R ?- X// defaultmuted
* q; k4 Y& E. Jfunction updatedefaultmuted(){
7 ^4 I) l" Y6 w& f$ pdocument.getelementbyid(default_muted).innerhtml=audio.defaultmuted;
p8 R# q/ _/ T, T/ B}
! @% _' A" I: t& Y$ u8 L4 m// defaultplaybackrate
* {' l" O( d6 N ^6 ?function updatedefaultplaybackrate(){
/ c5 f) R" Z, x6 mdocument.getelementbyid(default_playback_rate).innerhtml=audio.defaultplaybackrate;
# s1 _3 V7 b% `5 T}2 \! N- K) a+ h. b1 W1 O6 M+ o! ^; ?
// loop+ ~5 a$ ?& Z0 {8 A. j2 T M
function updateloop(){
3 p7 j. x# Q. {$ Tdocument.getelementbyid(loop).innerhtml=audio.loop;
5 `5 Q0 Q0 P/ P% z" Y}4 d9 a4 C* n) |5 o
// preload
/ |2 Q* r- N% y* R! Tfunction updatepreload(){
. V9 ]$ M4 p" p/ K# S: Udocument.getelementbyid(preload).innerhtml=audio.preload;
3 ?3 \. {1 p4 Y}8 ~) ~5 U% x/ R- `: F
// src$ Z7 B$ W1 G* Q/ s9 D+ b% p
function updatesrc(){
; n1 r' x" K3 `% _document.getelementbyid(src).innerhtml=audio.src;9 r* {0 i& x; ?/ y. \" R
}) Z6 i/ @$ D8 X+ M) _! s8 D6 M$ C
// currentsrc# {8 W. \9 X0 H& A# _
function updatecurrentsrc(){, O* \/ T+ x* ~! t' n3 e# [( @: S/ v
document.getelementbyid(current_src).innerhtml=audio.currentsrc;! A) L3 {! }. @( e. T
}
7 ^# y7 z3 n& _// duration
3 P$ ~) ^. ~( U! h4 k+ e% T' zfunction updateduration(){
7 d$ {* R! I w/ S, I1 Odocument.getelementbyid(duration).innerhtml=audio.duration;0 S* r! o& V6 O2 g; c6 O
}
; p$ z- `3 h" Y4 m U// currenttime
. {3 h" ^$ f U1 Zfunction updatecurrenttime(){
1 S3 }( \+ Q& P6 gdocument.getelementbyid(current_time).innerhtml=audio.currenttime;
$ P0 o* N0 M1 J: a$ [}
4 p6 k) U2 e( w) G |% Q$ Q// ended5 Z8 I" }8 ~; |8 e4 U3 {
function updateended(){
5 M" | K! |) [7 Cdocument.getelementbyid(ended).innerhtml=audio.ended;
8 o8 i! {- [) V}
4 } r$ Y. p& @9 A! `// paused
" a0 Z* B. u/ q0 S( l2 k4 o8 bfunction updatepaused(){
4 z' R8 r9 N$ Udocument.getelementbyid(paused).innerhtml=audio.paused;
8 K' O; S9 p: d4 C0 [}* Q9 q. f0 ~; K8 B2 W" i3 }% L$ m
// muted
6 ]! l! d! A" m7 g0 k; c6 sfunction updatemuted(){9 y" E5 j, U1 @# E# x
document.getelementbyid(muted).innerhtml=audio.muted;
5 _5 M- A4 p+ a$ j. _}7 O; b- N3 n1 H" x6 j) @) j" Y3 O
// volume- a) [& ~) t/ @* V, s+ ?$ u
function updatevolume(){
3 N! [9 s6 _! T; y; s6 Odocument.getelementbyid(volume).innerhtml=audio.volume;$ `1 H% S; B) B
}
# r, {5 Y! H+ x0 L1 [$ n// playbackrate9 N0 R. {/ Z7 ]. U0 L6 Y) t
function updateplaybackrate(){/ V* x2 `1 m& {3 y' M& c
document.getelementbyid(playback_rate).innerhtml=audio.playbackrate;# d5 e" k& |" W2 E$ I, X. S( o" L
}
* t. q, d* m7 T9 p# m: P2 X// networkstate7 b, z/ q, @7 r% D9 z" N) z
function updatenetworkstate(){
9 e. l; I+ |) R- r% {& Hdocument.getelementbyid(network_state).innerhtml=audio.networkstate;: z; o* H& E5 C7 z ]9 J
}( |+ M( D6 o3 X! l }: c u
// readystate0 u" j; o/ t0 m- m, u
function updatereadystate(){
+ x- S! j% B8 l3 c5 A$ X! g* b6 Ydocument.getelementbyid(ready_state).innerhtml=audio.readystate;/ W" [; |& @4 L8 ^9 q
}
: f/ q* W$ h+ `// buffered* V9 M6 `2 H' C0 d( \. |" E0 b' d" h
function updatebuffered(){
' E* U4 p) F( l# Cvar ranges=audio.buffered;
1 O& }7 I9 I8 r w4 }" dvar str=;
5 x. w+ U% g- v9 D, [+ J% Mvar n=ranges.length;
( B5 r w0 _; l9 ^1 R' |1 b/ Zfor(var i=0;i<n;i++){' l. f3 b E0 E0 U
str+=(+ranges.start(i)+,+ranges.end(i)+);, J Z5 w" [" w
if(i!=n-1){) }* p" [8 @8 m% J* p/ y G9 R
str+=0 k0 z, P" Q1 V# }! M; T
;
G& f3 D* z! l8 o$ F# m}7 a) S; @, e. s7 x3 O" W0 H+ x( I
}: i0 o' J/ _# z0 B, ~
document.getelementbyid(buffered).innerhtml=str;
3 Y% L1 L$ }! }9 R} i7 @1 U! k0 _5 p0 Z
// seekable$ ?( g6 f- V% O9 Y
function updateseekable(){
: ]4 M$ M/ H1 F+ @4 qvar ranges=audio.seekable;" F1 u' K1 U5 `% P: X) I2 E$ C8 V
var str=;7 @! n) H/ |3 d6 U1 {4 q
var n=ranges.length;
$ b K9 F" h& h1 e b' [for(var i=0;i<n;i++){7 `4 d$ r+ G% H1 Y: I
str+=(+ranges.start(i)+,+ranges.end(i)+);
. K; ~" B# Q2 u. F4 r. ?& [if(i!=n-1){6 f1 ^& j( m1 F/ I
str+=
! o2 I, A/ f5 n! X9 ?% N;9 n1 t7 t& q2 J( `) U
}7 H* u N* D. B2 M8 q J" q& `
}* V7 a& J) j7 ], e
document.getelementbyid(seekable).innerhtml=str;* v+ N: h. |4 ^+ l1 j6 @
}: ?/ f! f5 B! H! a% F% O$ A% j' o
// played% k7 C5 F6 K L
function updateplayed(){! M5 `2 v& T- g& z
var ranges=audio.played;
: a4 A7 h9 \7 c' mvar str=;2 h1 S8 P# N- |8 s
var n=ranges.length;
p5 s( t/ t/ d/ O; R( U. q2 Ofor(var i=0;i<n;i++){
) {* _! W2 Q# X7 d @! g6 Lstr+=(+ranges.start(i)+,+ranges.end(i)+);
3 C& O# P( L; M& f& @if(i!=n-1){$ ?9 t u' b j
str+=
( ?* p/ {5 c, j3 A;+ j) P( F. U# ~- q& D% d7 E
}9 ^( Q. v' _+ E
}( @) M- {5 h# G: L. Q6 `# a
document.getelementbyid(played).innerhtml=str;: e3 C& u. Q% W0 d8 o
}
0 P" Q: g: v: o% ~7 b* o: r// error+ v6 t/ s, T- H
function updateerror(){
; C/ n* W6 C* p, c7 r2 zdocument.getelementbyid(error).innerhtml=audio.error;
v1 C9 |9 K3 H! i0 s. C) B, X} V4 j( z2 o% K \ z7 B# o
+ o# t% _2 G2 N9 c, B- W% c# E
更多网页制作信息请查看: 网页制作 |
|