代码如下:
+ i% v( j/ _2 s<!doctype html>
+ K5 a" m8 p3 v1 z/ p1 N<html lang=en>" X' o ~; [. n& M9 Q: A$ I r
<head>
, e( C+ s' R7 ~<meta charset=utf-8>
' I+ |# I1 ?4 L<title>html audio api</title># E/ k$ l. b" w4 l6 ]+ {
<link rel=stylesheet href=./style/main.css />
& q q' n+ e$ g1 f<script src=./script/audio-controls.js></script>
# M; j1 V% t% s) B% }</head>- G: K; b: ^! N! M. Y7 W& q
<body>7 u0 T. w/ j \; _ M
<header>8 \; u. X; Z/ M% S4 r
<h1>html5 audio api</h1>" t `5 E2 x: R; P* ~9 x: J7 f
<p>html5 audio api demo by <a href=<a href=> target=_blank>learnshare</a>.</p> B0 p$ W$ }! _& o0 I5 n( f& f
<p> |7 R6 i/ i3 G( {
last update @2013-04-23 20:40:00" h2 Q" I3 g* r5 A w9 h# I( ^
+ add info table
8 @" \9 g: v9 p6 C% iupdate @2013-04-22 14:54:00
4 Z7 z# c4 W% w8 s- @) X+ add dom events
' H7 z4 z- |, c4 G: kupdate @2013-04-22 12:47:00
$ ?( C' E* ^: c1 r4 _; B) i, G+ add getcurrentsrc button& w3 w5 y) z6 s
</p>
$ ?" Y5 c/ l8 ~4 l; p<p>
& L4 v: u, b/ B. fview code on <a href=<a href=>
H% s, d% R% P# o# U; [0 h, U8 ?> target=_blank>learnshare.github.io</a>. " }4 g0 p% ~" k, n( m* _9 x
api reference: <a href=<a href=> target=_blank>htmlmediaelement</a> and <a href=<a href=> target=_blank>audio/video dom references</a>6 s. |( m! n+ T5 B! ]. `
</p>4 x( o/ L5 f* V$ \$ e
</header>
! N4 ~& t6 J" s/ O<article>
( i* S$ U; ]! j2 B( U9 T- x<section>* S* C! @5 B0 B
<h2>audio element</h2>' u. ]; g( @) | B# N
<audio id=audio src=./media/music1.mp3 controls=controls></audio>
" q1 B5 r/ B4 Z! h( _' f<p>open the <strong>developer tool</strong> to view console logs.</p>
4 v, b/ ?# z0 {1 W/ Y</section>
3 J$ X) ] |0 e6 S0 [<section>
0 t+ H. y1 h- ~4 h. J' e+ F7 R<h2>controls</h2>( P+ `* m5 U- |3 y/ w
<button id=play>play</button>
) b, D( D( z7 {. ?; x. v<button id=pause>pause</button>! T2 e' L$ M! w8 I
<button id=get_paused>getpaused</button>
4 Z* n+ k$ Y9 m- O z0 [<button id=get_ended>getended</button>7 l3 ^. L! x6 E0 S! ` ~
7 d) J8 r/ k1 B/ B' C0 c' g<button id=volume_down>volume-</button>+ F5 e0 |; t7 o i6 X, p. d
<button id=volume_up>volume+</button>' O! v" _9 e3 t1 K
<button id=get_volume>getvolume</button>5 M2 w# M# V0 K1 q' y, w
1 b# [. \8 f# H1 Y8 S3 P {) z3 |6 `
<button id=get_src>getsrc</button>
( H! X/ q0 I; q8 A4 e4 P1 y# T8 y<button id=play_music1>playmusic1</button>
4 B/ j3 U4 v. _, t( y' p* f<button id=play_music2>playmusic2</button># i, H, v# w/ E1 b8 _, v; l/ B+ A0 ~
<button id=remove_music>removemusic</button>
& t7 d$ p1 w) }0 f0 {; r<button id=get_current_src>getcurrentsrc</button>
- F- p& V0 T4 h0 U, i7 h2 i0 t6 r
<button id=get_initial_time>getinitialtime</button>
- t) X8 N9 @" R5 y9 Q' V9 c<button id=get_duration>getduration</button># [: c* g# }& z
<button id=get_seeking>getseeking</button>" _) c( f/ Z p, I* [5 R
<button id=jump_to>jumpto_30s</button>
8 }! `; c- f; n' r<button id=get_current_time>getcurrenttime</button>/ W+ R' Y* p1 ~( @, }7 _9 K0 j
<button id=get_played>getplayed</button>- M3 f% q" y. @2 }; Z6 r
: E9 ~6 }" o0 ~! b! X% Q<button id=autoplay_on>autoplay_on</button>
9 a) z/ z7 c3 m* A<button id=autoplay_off>autoplay_off</button>
0 o! h i0 v% b, |* r* q4 `<button id=get_autoplay>getautoplay</button>5 ]& N" v5 d8 Y+ d, [
8 Y8 |3 w* N& ~% H. U1 I
<button id=controls_show>controls_show</button># J" i$ A! I [1 D; K7 W
<button id=controls_hide>controls_hide</button>
/ p7 S9 V2 w# m<button id=get_controls>getcontrols</button>3 W% n0 ^9 i) K4 J# n$ z
: i( `( t, @0 t' j; m' E( ]
<button id=loop_on>loop_on</button>
+ v, m2 [2 [7 ~6 u2 A2 e<button id=loop_off>loop_off</button>; W3 X$ i' G; V. b8 H, Y
<button id=get_loop>getloop</button># X# r/ y+ Y. ~6 _6 Z
+ v( L% p/ d; n
<button id=preload_metadata>preload_metadata</button>5 S% a8 H6 C. Z- I( {, n% P
<button id=get_preload>getpreload</button>
' o3 z1 T6 l! K. p' A7 c( h3 v4 |* t B$ P6 q$ u0 D' H' u
<button id=get_default_muted>getdefaultmuted</button>
$ j& C% B! {8 \% |2 f6 l8 B<button id=mute>mute</button>
8 `4 n2 |1 [+ V<button id=unmute>unmute</button>9 m7 c( W- f' S4 C' M! z
<button id=get_muted>getmuted</button>" B. b& t4 z* ]1 {& X
7 D/ ]2 K3 S8 f" e3 R5 ~1 M<button id=get_default_playback_rate>getdefaultplaybackrate</button>" g! k4 k& g. ^8 U E0 ~5 J4 C
<button id=playback_rate_down>playbackrate-</button>/ w1 A- ^) a, q5 Z' a M
<button id=playback_rate_up>playbackrate+</button>8 { r8 g( j) c) L: [1 V4 m7 `
<button id=get_playback_rate>getplaybackrate</button>$ Z' a) u- Y( {4 _5 U: j
1 w+ S& ]8 b0 x
<button id=get_network_state>getnetworkstate</button>$ B, L/ X( y" V+ k1 t
<button id=get_ready_state>getreadystate</button>
) i$ @! }1 W$ e5 J: k<button id=get_buffered>getbuffered</button>
' d5 I V& U1 a+ d/ ^; O<button id=get_seekable>getseekable</button>) p( x, y, g. o* k' U4 K
</section>
9 U% k% k9 o; w; ?</article>8 `5 B' l, x4 y7 K- L2 Y# c
<aside>& V/ o) k! |; g7 M t/ b
<section>
* u4 x* C- h7 v! E8 l7 \6 e<h3>player attrs</h3>* P" R0 J: B" g6 [: x- E
<table>
+ [/ ^, L& g G9 s<tr>/ W7 w+ E/ Z/ o( M
<td>autoplay:</td>
* O" u- I, G! a! r<td id=autoplay></td>- S8 h2 {9 [8 E; A, p; o
</tr>
7 A% g# P, ~3 x. V* u, C; E9 V) k<tr>( Y% U0 l- j/ \# d" ?
<td>controls:</td>+ H4 V2 }* p( P% h1 \" M
<td id=controls></td>: U% T$ r3 s6 k- d: G5 R1 t
</tr>/ T6 c& ^+ p* j$ a
<tr>
. q: u$ F! Y. i' U$ s<td>defaultmuted:</td>/ H5 x8 [9 x* z1 Y: P7 H
<td id=default_muted></td>. j: }. Z2 w7 @" q! i \6 w( c Z
</tr>
3 w: L$ y% I! `<tr>
" ?. V: @) R8 k. j! k9 Z3 J<td>defaultplaybackrate:</td>, L: j$ F( a& l% W! o
<td id=default_playback_rate></td>
. B& G& I' n" m- z7 B</tr>6 s' E& L: P P- B
<tr>
5 K/ C: Q. y& F3 s" Q5 ]" l<td>loop:</td>: Y, X: P, H# ~" }/ [+ W" P
<td id=loop></td>2 q& k! _# r9 S0 P- w3 q
</tr>
5 X) |- r( U% `6 e# w/ @! s<tr>2 A: S' g2 l9 `- ^
<td>preload:</td>
9 ~2 Z. V9 T8 g& u; b/ Y3 F; h<td id=preload></td>1 U X2 A5 L& Q8 n! V
</tr>1 s. o; @' B# J
</table>7 B& M8 a$ D% j) e. \ v+ j2 \
</section>8 S: M' g7 @& R3 E% c4 Z4 ]1 J
<section>
( T- D' q! t. a/ J<h3>player info</h3>+ e, k! `' L+ X7 _# \& J
<table>" M6 ?" ?. R, [2 @$ k+ j
<tr>/ t0 q' h) ]1 ]1 ]9 Z1 [
<td>src:</td>: R6 l8 L/ s5 o
<td id=src></td>
. d; P7 b9 w+ s ~</tr> g7 Z$ T/ m% U8 y9 ^8 n5 ^
<tr>
/ ~) G9 a3 ?& _% L4 \<td>currentsrc:</td>
2 s; L4 S' J& X1 |# l' b- C# _<td id=current_src></td> I+ X7 \/ \+ U3 @2 Q( D
</tr>
5 K$ X! S Z- P5 p, T<tr>
' R7 v! q0 a' r* R W: c<td>duration:</td>9 R% R5 E* w0 o4 Q3 s
<td id=duration></td>
# Z1 z+ A8 c, L: W# T U</tr>
$ n) y! A& Y! v( T& \% o<tr>& p& k& x0 ]! x, A! f
<td>currenttime:</td>$ W8 p5 k0 b" y$ m
<td id=current_time></td>- z; _" Q; q; u6 n- X3 z! |- C
</tr>& o$ L5 Y/ ~% R5 u6 ?, B. l4 F/ N
<tr>
v' n6 b9 h- l" a) y7 R% [<td>ended:</td>9 R6 [% C1 m5 c3 t4 j- c
<td id=ended></td>& M: ^3 p0 L: x0 m
</tr>
9 Q' S: J. J* Z. k" z<tr>4 N2 i* k7 l; U7 E& j
<td>paused:</td>
! W0 A, w% b& F7 |1 o8 j* j<td id=paused></td>
# _* Q, u+ A5 Q5 K% {' Y1 j3 t& W</tr>, u' I. A; q" {% l5 c
<tr>
$ k' w6 G+ w9 v! _* K$ j<td>muted:</td>, D$ w; m& L! I4 r
<td id=muted></td>
3 d. O& ^/ v G" L1 w</tr>! `- b( c6 t8 f& k2 ]) _
<tr>' K0 Q: e$ a1 s7 O* u; @
<td>volume:</td>
" O" l7 n0 u& j# i9 }* g; P7 V' _<td id=volume></td>
( U6 v, o/ t: k. x* Q2 {4 z</tr>% P' M* p% k; A; C5 m0 W2 u- G/ y
<tr>8 {& ~" \* t+ z
<td>playbackrate:</td>; _# p. w6 F1 i* q
<td id=playback_rate></td>( M. i( }( O( Z. \1 u
</tr>) n2 ?$ Q* z S9 w
</table>( F2 a. z0 c7 u8 C0 m
</section>8 i5 u: F3 @% e& y+ L2 ]
<section>* i+ ^) H0 h6 E2 m
<h3>play status</h3>+ ~" s) u4 N6 H7 T/ `. E
<table>
) I- h; B4 s+ L& A2 W* Z" A: m<tr>
, z7 G) {# J, P( I4 u, u( z' Y<td>networkstate:</td>
( X6 \: l9 W: x- H a5 k7 `6 q9 `6 k; _<td id=network_state></td>/ e2 n9 [5 P9 Z2 z' K. n+ X
</tr>
F0 p" ]. E7 u2 j<tr>( Z G$ b- A! e7 k0 B- G
<td>readystate:</td>8 J# P* H: _ s0 f, S- g
<td id=ready_state></td>" ?% a' J9 `: J5 Q
</tr>9 ]9 w6 b0 `9 z4 v* e7 Q$ e
<tr>
! U- G1 A4 F8 Z4 \<td>buffered:</td>
% [8 g7 e: P7 K( D3 s<td id=buffered></td>
1 O M! F2 u; H, l; s9 M7 {0 t</tr>$ U1 Y0 _' s% K$ X
<tr>
' O/ ?, e5 a; _7 ]3 d<td>seekable:</td>4 R+ q3 f, L" W1 p, x+ a
<td id=seekable></td>7 A6 N# b; y7 s7 ?% X T
</tr>2 X+ I9 g% N. b( p7 v6 R+ q+ W) p
<tr>6 t, w ~. R" g1 U+ S
<td>played:</td>
( d3 ]) K% V ]) Y0 u1 V( z<td id=played></td>; a' j0 P1 [3 J& C/ j5 ]
</tr>
8 ~: ~$ g( E9 @4 M- m7 o u) r<tr>5 l( p F1 H' f/ u5 Y1 Q, a
<td>error:</td>6 k U6 ^* g8 \: O
<td id=error></td>
: i- `. Y! b* f& p3 W: ~</tr>
8 o9 S; B( w9 P* \6 m1 P! e</table>8 `* `; ?" F% F0 L/ V6 Y( i( r
</section>
% O" r: s2 V3 t& L; p</aside>
2 m' o( S! V3 \9 H% p</body>0 \: o1 ?! g! r* u, B
</html> P" d. o1 o" r4 K* W$ L
0 ^1 ]0 f% [7 P. p
audio-controls.js
: s# w" x, H) O/ H- F Y4 z% D$ u: w
代码如下:# p+ V5 A$ o6 X
window.onload=function(){
. b6 b% G$ P$ v" q// get autio element6 R2 E6 J3 M1 W
var audio=document.getelementbyid(audio);
+ c$ n* u+ t9 d6 \$ b8 m/ s6 C$ m* P// play()7 r; W k# W* B9 F
document.getelementbyid(play).onclick=function(){$ c1 n. `1 b m1 C3 T3 v" j/ W
audio.play();
- x* h) M* y; P5 t7 s+ Hconsole.log(play);. f/ X; l: D( p8 u# \1 c1 x
};
! @# g- `, i: v% ~7 T. t6 _// pause()
4 n& L5 S% z% R& e0 Xdocument.getelementbyid(pause).onclick=function(){9 e) B; E6 J* o2 ]' r: ^, C# `" e
audio.pause();
* e4 W* K$ |* S) d, C0 l0 x2 _: \console.log(pause);
0 o! g8 Z/ Z0 A0 T# N, k( B};
2 [6 w& |# r2 v- p2 N* m* k+ @// get paused, M1 g5 `# m+ v
document.getelementbyid(get_paused).onclick=function(){
8 e( F" k' Y/ V/ u4 nconsole.log(audio.paused: +audio.paused);
) R/ X4 J$ y$ p7 F. P! B};: R& J# U1 U. D; U( g# U9 F% U$ ^
// get ended. Z" t% f b7 Q, p7 a/ o
document.getelementbyid(get_ended).onclick=function(){
9 s% d/ {: S+ L9 tconsole.log(audio.ended: +audio.ended);* w- H# D! U% f' m) {
};3 e* ?1 m4 B U- X$ L$ B+ J H
// set volume-- H. q7 D7 c+ l# ^
document.getelementbyid(volume_down).onclick=function(){$ D; b+ x2 L A" H# ]& m
audio.volume-=0.2;
, P% F/ |1 |( Y3 R- x Pconsole.log(volume-0.2);
- R4 W2 ]4 n, ?& E};+ B, ]- E4 c$ q5 Z
// set volume+
x9 D) G% h0 z: i# o' G( ]1 wdocument.getelementbyid(volume_up).onclick=function(){
) \+ N4 F0 n' V- m, f! q; Baudio.volume+=0.2;- z% z# h. p- {8 C; N+ c
console.log(volume+0.2);
) Y7 p& g" I( J3 n- l5 C9 l};
5 b' F) m1 v9 J) w( ?// get volume7 K, \+ m" T& y4 k9 J; b
document.getelementbyid(get_volume).onclick=function(){ t. e; x0 W# v2 j9 a1 j: F
console.log(audio.volume: +audio.volume);
1 J$ j3 |; b; I% y# X};
7 G. f; q. u! r* ~7 R% r" E1 X" Y// get src; m6 }% ]. B7 S* J+ {( d: S' |
document.getelementbyid(get_src).onclick=function(){
+ B; q1 i% R) R/ k% d. {) u6 Zconsole.log(audio.src: +audio.src);' |3 B7 J, R3 B7 L, p8 m
};: i* c( s$ U4 X& c1 U
// set src_music1" U; P! @- a5 ^/ l
document.getelementbyid(play_music1).onclick=function(){' I4 b" Z6 E! l1 j6 S; e4 b2 U
audio.src=./media/music1.mp3;: u5 n4 {8 t! _( G7 u2 n
updatesrc();
# v3 P2 R5 v1 d" Z6 uupdatecurrentsrc();
4 D( z! n8 K, e7 ]7 Econsole.log(play music1);
9 F+ M' f1 y+ }6 C/ P/ S- W};
( ~9 r, l3 d9 r4 B. ?// set src_music2
7 |$ l* n9 T/ g. @/ idocument.getelementbyid(play_music2).onclick=function(){
+ p3 _ v/ k. j# e8 ~audio.src=./media/music2.mp3;
- n, J' B6 }8 G% Kupdatesrc();# ]% U7 M' y2 b2 Y3 T O: @
updatecurrentsrc();
, `# p# `9 @6 B" p% i- `6 jconsole.log(play music2);7 Y0 N- S' B; L' Y6 `
};4 F$ W/ X) u. h3 d. q$ X
// set remove_music
' v0 t# h8 N. T3 V" _document.getelementbyid(remove_music).onclick=function(){$ g! ~* X$ z" U5 k! T/ I, g" T
audio.src=;
/ {+ J" @4 v9 T* mconsole.log(remove music);) Y9 Q% x' U5 \: Q3 E
};
+ a) m3 }3 U' q6 ^% R// get currentsrc
( j, a; C3 [1 }document.getelementbyid(get_current_src).onclick=function(){& j# g+ h1 E L2 U5 f
console.log(audio.currentsrc: +audio.currentsrc);
+ O! A6 k& n- L3 |7 s};& J( h& f5 Z0 |
// get initialtime- U( `; t3 v4 X" K/ N
document.getelementbyid(get_initial_time).onclick=function(){6 q2 S2 t0 c v0 u0 n
console.log(audio.initialtime: +audio.initialtime);& Y" R Z* g% j$ U. g: E1 G3 ]
};
" K% i% Q0 g7 h+ M/ ^0 O- M8 M// get duration( x7 R$ q4 O1 i+ \: H
document.getelementbyid(get_duration).onclick=function(){
* r2 @2 ~, V& L# ~* lconsole.log(audio.duration: +audio.duration);0 A i b2 ~8 M
};' E7 N4 b6 D' Z! N# u: T8 D w5 |
// get seeking
g: c/ F3 f0 V% e; w) Xdocument.getelementbyid(get_seeking).onclick=function(){0 r0 w9 ` e% V: k4 B
console.log(audio.seeking: +audio.seeking);
& o% m5 I& d# n9 J( L};- Z2 D1 N% V" N4 b; ^( C
// set currenttime0 i0 J5 Q7 U( i- t/ t7 F
document.getelementbyid(jump_to).onclick=function(){
5 X; p& o' Y2 B d! ^1 maudio.currenttime=30;
& U6 H- G4 {4 V' l( Vconsole.log(jumpto 30s);6 b' c( B, _$ Q3 p
};
7 M' _; y/ E3 ?! K// get currenttime9 h- q% A l. G! C2 r7 }% c
document.getelementbyid(get_current_time).onclick=function(){0 J7 u7 y+ q0 O9 `+ D
console.log(audio.currenttime: +audio.currenttime);
! l' \4 I2 ^& U9 y \3 l};
& ]7 p& }" @5 @2 l! R, w2 N// get played
4 I* |2 j5 J* Udocument.getelementbyid(get_played).onclick=function(){
+ v# k7 Y3 m9 i1 ?0 iconsole.log(audio.played:);
1 S: p+ Q' U |( }1 [2 Q# Q5 C. s/ [2 mvar ranges=audio.played;
, b6 ?+ A' s: g) o$ ^var n=ranges.length;8 X9 ?! S- ]+ @$ N
for(var i=0;i<n;i++){
- G$ V+ E) ]8 E" \console.log((+ranges.start(i)+,+ranges.end(i)+)); R% y0 w" [5 Z! R9 x1 M
}" \6 F. _: E! I. ^$ u6 Z! h/ `
};9 j3 ~/ _9 l. Z3 }5 { K4 E3 z
// autoplay on
2 |9 O2 c5 M. ?9 udocument.getelementbyid(autoplay_on).onclick=function(){
- ?0 v4 Y% N5 z1 ]5 L8 Jaudio.autoplay=true;
9 c* w0 k5 M2 C/ U2 [0 |0 J1 S' Tupdateautoplay();7 P: m8 J. E C' ? l9 t
console.log(autoplay on);! M2 {7 f# I3 o2 H
};
! h- [! }" k( e// autoplay off( Z- h6 N) F! G0 v
document.getelementbyid(autoplay_off).onclick=function(){
7 x' c* `8 E* M1 B" J5 R* b! w. |/ Faudio.autoplay=false;
: }, J* R- p3 U1 Qupdateautoplay();5 i( g* H5 O" h/ H
console.log(autoplay off);
# ?+ m9 K& d5 u, r+ \6 L9 t};: U2 u% {1 [7 S9 y
// get autoplay+ F; S8 V/ i- _2 @; m
document.getelementbyid(get_autoplay).onclick=function(){3 U% L6 g/ [/ ^+ {/ u% ^
console.log(audio.autoplay: +audio.autoplay);
( Q2 O$ S8 {& g; j$ O: A};0 ?/ O0 R+ B, O7 Y0 } K6 S, G( K
// controls show& s! V0 i) s0 @* Y) [+ Z
document.getelementbyid(controls_show).onclick=function(){
' e) y, W/ w! h$ g! Z* q/ Iaudio.controls=true;7 j. K7 C i3 Q4 z
updatecontrols();
1 U! d n) i8 Z6 J! g( r9 J4 ?console.log(controls show);
/ J3 a# U- {$ c9 g4 B: n};
9 T# H& H! _5 u& A. q y; s) _// controls hide
" W( s7 ]. r( {" s) @/ fdocument.getelementbyid(controls_hide).onclick=function(){
3 ~& M1 y( z: j: I( p2 [audio.controls=false;0 ~, u& L3 p8 V. A: z
updatecontrols();' c$ }8 f+ w6 l' d" t
console.log(controls hide);
) v- J2 J5 K5 F# H};: V& ~- w! C+ ~; M4 P
// get controls5 e+ O+ k9 Z i. e% n, q
document.getelementbyid(get_controls).onclick=function(){% T+ f; w8 a4 I) l, O
console.log(audio.controls: +audio.controls);
# R" T, a$ V4 S, m/ X$ I};% c3 }$ d: `1 L2 I+ \) W
// loop on
7 l8 a4 ^1 Y7 |7 zdocument.getelementbyid(loop_on).onclick=function(){6 W, M* Y2 `* Q. ^! R
audio.loop=true;7 e8 b7 V9 J+ O4 ~+ H( Y9 ~; p
updateloop();! m9 s3 f- t' v
console.log(loop on);1 K* `/ Y3 }& V* b- E% [4 T
};
5 w1 f8 [' z+ [ I. e3 K \7 J1 H// loop off
8 i9 W( U$ Q: [2 ddocument.getelementbyid(loop_off).onclick=function(){/ g B. N. A# e, |. N2 q! }
audio.loop=false;
) i. c# a8 u3 U' n/ Mupdateloop();) E6 N2 o, h1 j/ k9 k/ y
console.log(loop off);
1 V; \4 R% t- I, e};* p, C) F4 a8 h
// get loop( p; x& B8 d5 g- J- i
document.getelementbyid(get_loop).onclick=function(){
$ W0 a+ ?! ~' J9 O7 {6 Xconsole.log(audio.loop: +audio.loop);
: s5 j2 o. a3 ]0 j! S2 P. p, ~};
. D1 J. j& p5 F) f. o2 f// preload metadata9 ]9 `" L" P, `0 {( g8 S
document.getelementbyid(preload_metadata).onclick=function(){( D! B& o% B; q5 y
audio.preload=metadata;) b( ?5 J5 R6 `) R* J
updatepreload();
" l6 Z* b7 {$ `console.log(preload metadata);2 y& ?' C g8 T/ l' `& o- Y
};( G2 U5 v! P/ g# I' d2 [2 |: R3 w
// get preload
6 b! p% w3 E P: fdocument.getelementbyid(get_preload).onclick=function(){
* X4 M+ d1 q, ]9 |5 econsole.log(audio.preload: +audio.preload);4 ?: ^5 C: K% ]4 a
};
& F+ T: p& |& H* S$ {// get defaultmuted0 a8 O+ }' o0 A4 u
document.getelementbyid(get_default_muted).onclick=function(){
+ R# V0 l2 Q+ ?' jconsole.log(audio.defaultmuted: +audio.defaultmuted);
" O* s. t0 a& u& D% s r7 c};7 L; a; A9 b) x; [/ @8 F4 ]& T4 ^, p
// mute# ?- B' H H: r6 p9 e
document.getelementbyid(mute).onclick=function(){* F" d: v% j: p
audio.muted=true;; r3 ^4 @! c, H
updatemuted();
+ l7 P/ r1 l7 T6 \3 i" ^, R$ lconsole.log(audio mute);- K# E) n3 c) z3 x1 d6 P
};
" P$ B. j. x+ ]$ o# C% \' ^: U6 K// unmute' D, o( j2 u8 L& _
document.getelementbyid(unmute).onclick=function(){
! Y, e+ a* Q, k: M6 ]2 Y* s& aaudio.muted=false;1 ^% Q+ @/ H7 N0 l% m/ \2 R
updatemuted();+ s/ c" f2 F5 G2 c
console.log(audio unmute);( m1 L& \3 X1 y) f* |9 n
};- c2 R7 p6 C7 K" r/ }' }
// get muted, F' u$ K! }' u5 w4 v
document.getelementbyid(get_muted).onclick=function(){6 I, o1 [0 y/ R7 ]
console.log(audio.muted: +audio.muted);4 B. s7 N% _9 |2 N
};+ J! M1 `1 ^) @3 L+ o$ k- ~. ~
// get defaultplaybackrate
1 @! P0 S- {% p& `+ \' H. g7 D ndocument.getelementbyid(get_default_playback_rate).onclick=function(){
! A) e3 [2 c6 E- x8 @: d# Jconsole.log(audio.defaultplaybackrate: +audio.defaultplaybackrate);
; U' B- h$ [, h; b z; V};- v! ?! C% U" \. S
// set playbackrate-
6 a4 U( |- @- s1 d Y- F; B* Edocument.getelementbyid(playback_rate_down).onclick=function(){
$ H1 d1 L/ [. G9 Xaudio.playbackrate-=0.2; Q5 c8 o8 s w! }
console.log(playbackrate-0.2);' U2 k1 @1 i4 b' d8 ` W: ^4 L
};
# ^. d; Y9 |4 ]3 q// set playbackrate+ R! Q; s5 I, n
document.getelementbyid(playback_rate_up).onclick=function(){
. F& ?& E7 ~9 d0 W9 raudio.playbackrate+=0.2;" y4 H; \8 E, x' u1 i
console.log(playbackrate+0.2);
3 h8 E9 f2 N: z- Q+ {' I6 m0 A};# m* o4 S* L. Y' I
// get playbackrate
1 [( h6 a. F7 u$ B$ \document.getelementbyid(get_playback_rate).onclick=function(){, F# m1 s; l7 P! E
console.log(audio.playbackrate: +audio.playbackrate);
0 c8 i" }: i0 W};/ O, e( l9 t- R+ ~" a+ q5 v
// get networkstate% C2 [8 O/ X* B) U! v
document.getelementbyid(get_network_state).onclick=function(){
8 m: D5 n' }0 }( |, \+ q* c# ]% K3 Oconsole.log(audio.networkstate: +audio.networkstate);
7 ^ y8 i m9 \& B: D};
1 C* h7 L! | M c% }// get readystate; G: @% v6 }4 X) @3 h" S$ o6 D
document.getelementbyid(get_ready_state).onclick=function(){2 c1 \% Q; p; _$ K/ ~1 T/ P
console.log(audio.readystate: +audio.readystate);5 L3 H# b( W' D' T \5 ?4 k. V
};$ }3 M4 [0 [% N6 T. O( H
// get buffered2 {8 n# y8 c) H5 H1 q0 f
document.getelementbyid(get_buffered).onclick=function(){! U; j4 k; j: ^- U1 g' Q) B {
console.log(audio.buffered:);+ _7 O. E& {. [: u- M, T( z
var ranges=audio.buffered;# _5 {7 f) @7 M2 \7 ^
var n=ranges.length;
+ T5 f5 M5 N3 M6 Vfor(var i=0;i<n;i++){
9 S2 `, i4 L* S) ?/ V% o( dconsole.log((+ranges.start(i)+,+ranges.end(i)+));
8 N. Z: E1 s( B: ^* _0 r} Z$ D3 U- |/ r, f* q+ S! ?% M
};! Z9 v3 h) i+ |6 f. E8 v. n0 J
// get seekable `5 G9 \( R- H8 Y) F9 T' x( q/ c
document.getelementbyid(get_seekable).onclick=function(){
9 N. }& B& \9 Q5 fconsole.log(audio.seekable:);
0 g7 B$ K) ^9 c" |2 y/ @: Lvar ranges=audio.seekable;
$ ?6 t. k7 v- A( O- g: G2 ^var n=ranges.length;: m7 |( z: G: i) C$ P1 |- ^
for(var i=0;i<n;i++){- v$ |' |( y* K2 z
console.log((+ranges.start(i)+,+ranges.end(i)+));( N1 P1 \3 \& `! V2 e/ w
}
" r I, E! f! V};
; ]) _6 m+ y" E1 b! U7 ~// dom events6 v; }2 S! X- ]& W$ e/ f
// abort
# B( a& I" x5 n/ s" e4 _4 Gaudio.addeventlistener(abort,function(){* W8 u- A( o* {
console.log(event:abort);
# ~. Y: \0 P0 e8 _0 F' a});
! E' R- S7 D: D0 o; J) a// canplay
' a& t+ ?. Q" I6 i5 aaudio.addeventlistener(canplay,function(){
/ @9 Z/ z6 m. D+ {7 T: e; yconsole.log(event:canplay);
4 h' N0 B- v7 l});
+ g4 r; ^' @* s6 L3 ? K. `// canplaythrough$ s n4 v% a/ E( [! ~$ W0 P
audio.addeventlistener(canplaythrough,function(){
* `% W6 v. G5 V+ C6 Bconsole.log(event:canplaythrough);
9 _, e% ? _* k- f( p! u3 G});, [: i5 \# m" r0 L" \; X
// durationchange
Z- s5 k( \" H0 w0 ~2 qaudio.addeventlistener(durationchange,function(){
0 `. n4 n2 n: i# Iupdateduration(); G. Z& y3 U7 z6 A6 U" v3 t
console.log(event:durationchange);# p" d+ j! B) X; c% j4 k" L8 q' n
});* {( J, |/ c# q; t2 d' p
// emptied
5 { Q5 Y4 B1 L# s4 ?( maudio.addeventlistener(emptied,function(){
3 F3 h. j; P H0 P0 Tupdatesrc();* h6 Y# p# ]. h
updatecurrentsrc();
! _8 D- a6 ^& E) k ?updateduration();
F' H0 K. [* B6 x: c2 T" r. [updatepaused();
& T4 H) y, a( B* V* z; k: Eupdatenetworkstate();
! A: [% c% ~4 i# k' x$ {; Dupdatereadystate();
- s# ~) n& \& Wupdatebuffered();$ I) r0 t) N/ Y9 ]& P& { V8 _
updateseekable();
7 |/ l# z1 H# ~. E5 kupdateplayed();) b9 _1 \0 q) s, X! U/ G
console.log(event:emptied);% J4 S# M+ {! i
});
5 X& u5 @# d, f0 D// ended) q* t; i! i% T0 W9 Q% J% T
audio.addeventlistener(ended,function(){# b0 O3 m& |7 \1 F
updateended();
+ Y3 @7 [% h( `: \$ x c' Iconsole.log(event:ended);
|0 F4 l0 f& h+ V- v4 E* [});$ U: r3 F. i5 c
// loadeddata
+ }2 G5 a, T3 [audio.addeventlistener(loadeddata,function(){! W$ d% l4 G5 x# ~4 x
updatenetworkstate();
5 A1 \+ b7 P+ v8 Lupdatereadystate();
# L# p9 x. Y! u( |1 G) Jupdatebuffered();8 Q. q- D1 h \3 d" L8 e
updateseekable();5 r& m0 E: E5 h9 q2 F6 f, n
console.log(event:loadeddata);8 d7 ?6 L4 Y$ [7 J
});
( t8 o4 F3 T! N: q; [// loadedmetadata8 r$ m, R* T8 K F2 O/ U' @
audio.addeventlistener(loadedmetadata,function(){
- A/ l7 q$ B! Fconsole.log(event:loadedmetadata);/ R8 [' L! @$ N7 i) a& @
});) f5 K' |* j1 T
// loadstart+ e! `$ F2 r! T, [( U
audio.addeventlistener(loadstart,function(){
. m* j1 `. u b) L5 a4 Kconsole.log(event:loadstart);
a0 U* {- U+ O" b" E});
( @% F( Q/ @! j9 y `# a+ b// pause. q+ j5 }5 J# |# L; r% T$ U) I
audio.addeventlistener(pause,function(){: t* c4 W* v! K6 x1 t
updatepaused();
! b; {& [: S- b& i5 Qconsole.log(event:pause);
6 U, F- e- s' ~9 p2 {. B0 o8 [* j7 ~});4 \" t6 }. ]6 ^# U; |! j
// play
, Y8 E, z r+ S6 b/ Daudio.addeventlistener(play,function(){5 W1 W) ^1 c* v" Z: \4 q# h) l! I
updatepaused();2 W% I$ w1 I/ k. d9 B
console.log(event:play);. @. ]5 f; q( W5 e$ t- {
});5 j+ h" |3 p: x& N7 Z6 j! F
// playing
+ ~" h) m h a- v% eaudio.addeventlistener(playing,function(){) J! j9 T- |/ ]% ~/ M2 ^3 Y
console.log(event:playing);8 D8 D: u6 K2 r7 _" k0 p
});
' A% i8 L5 N& [; T// progress9 I y7 D6 V9 p- h" I7 l9 Z
audio.addeventlistener(progress,function(){ d4 G- Q+ D$ d+ x: I
updatenetworkstate();" `: Q# p8 y! L
updatereadystate();7 @' U; [& ~( O$ k
updatebuffered();
, A3 X0 C& g9 Z" o' T2 \* y2 Rupdateseekable();. E5 a4 u2 W3 b f
console.log(event:progress);- n( `, g; q$ [) t
});' T& l" G! _9 W/ u
// ratechange! m) G W0 Q: D9 [9 z5 k( y
audio.addeventlistener(ratechange,function(){+ Z' c. v J# x
updateplaybackrate();
3 N; Y) E) j: @; L! |& i$ B2 Mconsole.log(event:ratechange);
3 u7 ]1 n. _* X5 D* m3 u4 @6 {9 J});
5 B+ Q9 o* V9 K+ {& @& A3 N5 R// seeked
: y. h* o. i0 Q) Haudio.addeventlistener(seeked,function(){1 P0 B5 T( G. c0 h, W6 o" L
console.log(event:seeked);4 E8 W" W7 A% w7 b8 [1 x( b: [
});
6 t/ h( P7 s+ r8 z& J// seeking2 j4 F, J6 F8 J5 |2 P
audio.addeventlistener(seeking,function(){
* X; M: C9 I, y9 J$ vconsole.log(event:seeking);
3 L. ~. F% S# m( t" x! K- i2 x});' [9 E- m8 q% N& V4 J' [( g( h
// stalled
* X b5 x8 n/ L2 n7 l Z' i* _5 Laudio.addeventlistener(stalled,function(){, Y; Z' j" O" l
console.log(event:stalled);
' _5 y6 p9 \5 e' U});
) n f8 i* p+ S0 e) D% E// suspend7 i% W, X! _* S# V/ N H
audio.addeventlistener(suspend,function(){
; U& v7 l- b5 S2 b6 Q8 ], Zconsole.log(event:suspend);! E; i3 [% S# N* k5 a
});; ?. Q7 c: `- B! B2 v4 c
// timeupdate# {! |2 D% l! {" f, U/ z4 s
audio.addeventlistener(timeupdate,function(){
. c, l2 w0 }" ?1 p. |8 Z+ kupdatecurrenttime();
% q; @" G1 \( j- @updateended();# z4 b* V7 ?% o |( t
updateplayed();4 A( P7 b" V3 T8 r! F$ @, ]9 ~
console.log(event:timeupdate);9 ?; n+ z4 K" U
});
& ?' }& I7 H9 [2 t1 @( H$ w( L7 e+ W; b// volumechange4 m/ j. N0 D. g
audio.addeventlistener(volumechange,function(){
1 K+ A8 V, Y+ N8 X6 J. `# cupdatevolume();
. j% s4 v7 h" C5 Fconsole.log(event:volumechange);" c( z1 E. P3 f. o% o G* _
});
0 q" p6 h( T( d/ g, b6 i; \: V1 U// waiting+ u$ @3 G" ]( ^: j- c/ W
audio.addeventlistener(waiting,function(){3 ]3 D0 z4 O7 \6 A
console.log(event:waiting);( D" B' K ]! U7 m. }7 |+ h
});
. }- l- ^% u! C8 {) Y Zupdateautoplay();* y3 m5 B( h1 K9 B- Z; t% \
updatecontrols();4 u; U/ H8 l8 S0 _
updatedefaultmuted();& q7 U8 E3 k* D! Z2 h3 p& ^
updatedefaultplaybackrate();
; J3 ]0 K$ }& p+ h7 [ X- v5 nupdateloop();2 W0 A- p- d. @. ~8 Y
updatepreload();
# H7 j. `, d Q! L. xupdatesrc();
7 d" x$ v% J& p: _" l$ Iupdatecurrentsrc();
5 y/ P1 j- X$ Z1 E2 g4 mupdateduration();6 |/ W- t4 t! y! y
updatecurrenttime();
' {2 Z. L3 e0 a# xupdatevolume();
& l! E, _& N- vupdatepaused();
. Z8 o7 X% }/ Gupdatemuted();
5 f7 N$ p2 A% [$ n. D+ d5 _updateended();
8 Q$ @4 e8 O8 f# A# ^updateplaybackrate();9 f5 |/ W1 L, c! H! ]& n
updatenetworkstate();: D% c; z5 G4 H3 K
updatereadystate();
}- U/ w8 V2 @* Y7 X1 _# v% l6 bupdatebuffered();
* E l* r3 [# Pupdateseekable();
( l& C+ l8 J1 }4 O1 e6 `updateplayed();6 t, Z1 m* C7 K9 g T
updateerror();4 f) Z7 h# y3 M& H4 k; B- H
};
8 @# S2 E5 o. v9 s/ J2 m$ h8 ?! M+ ~! b// functions to update info table
) n7 A1 ?" W$ J Q2 l6 o// autoplay9 X5 V' {+ z j9 O
function updateautoplay(){8 H/ j$ w& k; [ x b' `5 t
document.getelementbyid(autoplay).innerhtml=audio.autoplay;' w6 y3 \) ]5 A6 T2 y
} W- ~, a( W1 V
// controls
+ A/ T4 c: s8 Q; J* l! r: Y9 |6 qfunction updatecontrols(){. B) k! {/ o4 o# R! ~
document.getelementbyid(controls).innerhtml=audio.controls;( _, D2 v- @3 A
}1 ]. T7 G# c0 e! r, i
// defaultmuted* z, K: }; u2 g. \
function updatedefaultmuted(){" r9 }" ?# K( P5 Y
document.getelementbyid(default_muted).innerhtml=audio.defaultmuted;
( ?* L! |3 i7 i2 }$ p}4 ? N1 I, X C- U; Y
// defaultplaybackrate+ d! j0 D1 G: K
function updatedefaultplaybackrate(){+ Y% b/ X$ N( U! `. V: ]/ q
document.getelementbyid(default_playback_rate).innerhtml=audio.defaultplaybackrate;* B a* h$ ]6 Z7 q# }( T# M" I- O
}
# S$ z4 n- |0 i. B/ _// loop# a+ \9 ~" A& f
function updateloop(){4 E6 R W8 P d: r$ \
document.getelementbyid(loop).innerhtml=audio.loop; }" f# ?/ J' R
}, t/ T8 n5 a" E9 B9 A4 W; N+ p
// preload) p2 l% ~2 A/ W5 E
function updatepreload(){
6 N. v; A1 g C5 A: bdocument.getelementbyid(preload).innerhtml=audio.preload;/ F" {8 Z$ v- Z/ u- q/ w+ ~) i3 t
}4 g2 A, u( ]. [0 d7 @
// src
2 V- V$ @) l' U- d$ d) W+ I# l: _function updatesrc(){* g* F' e4 }9 D/ \3 d1 P0 M5 l* }
document.getelementbyid(src).innerhtml=audio.src;
% D* _9 R9 ^+ `; P( t L. S- @7 a% N}; d- S; g7 b$ Z g( y7 p; Y9 ^
// currentsrc" e6 l" y' Q8 V1 J0 I, E1 y
function updatecurrentsrc(){% r f. z# |! m8 |" Y6 q* ~
document.getelementbyid(current_src).innerhtml=audio.currentsrc;! {) ?( h5 B+ s) K/ O9 B1 D
}8 `' A, m0 {" n
// duration7 c: T( O8 h+ P* ]/ U8 P
function updateduration(){# ?! b/ G' b. |$ |* c7 i* l
document.getelementbyid(duration).innerhtml=audio.duration;5 g6 u# ]- {/ k6 y% v( _' C
}: h% q: Q. G0 m' U
// currenttime4 |& Y: d% K! w7 _! K( U, |2 f
function updatecurrenttime(){
! Y! _* o8 \% P* |) D Udocument.getelementbyid(current_time).innerhtml=audio.currenttime;, n+ ?1 B4 z3 ^2 n8 \, C5 K9 a% l
}0 X: b [/ z5 I9 M9 \
// ended5 X$ V& g% Y4 M) {* G) {. W
function updateended(){9 Q# a7 ^6 L3 K" P7 v# D1 O' {" ]4 ?. U
document.getelementbyid(ended).innerhtml=audio.ended;
7 ]0 F: q- f! u}
8 A% Y4 J1 @" j0 L3 ~$ H// paused
8 P+ l: o8 z# S) c Ffunction updatepaused(){
6 \3 e0 f* s5 _0 a6 c* ?document.getelementbyid(paused).innerhtml=audio.paused;
4 A1 T3 Y& n+ T: k; P. d& N}
$ n. I3 B, \$ n; ]// muted/ \" z: ~4 ~5 d* x# f5 Y
function updatemuted(){6 X7 C; z n: W
document.getelementbyid(muted).innerhtml=audio.muted;
) C' c8 K: M8 M: o/ j* F9 c}2 } ~$ B" E T
// volume
$ V; @% C4 n0 Rfunction updatevolume(){
" i; h5 V2 K, B) Z/ l0 D( Odocument.getelementbyid(volume).innerhtml=audio.volume;/ w/ `' D- t* ]
}
1 _; _$ W+ @# r, Y/ ^4 X// playbackrate3 _# Q5 B" f7 q
function updateplaybackrate(){, a7 k( X z$ X7 L6 |; U
document.getelementbyid(playback_rate).innerhtml=audio.playbackrate;
; ]7 X7 d* N) ]}% F( J, a9 k- v$ _
// networkstate- C8 c! y6 v1 _$ Z
function updatenetworkstate(){
- M4 W0 R$ c" c7 }document.getelementbyid(network_state).innerhtml=audio.networkstate;
8 @; w x4 Q, P( ^2 q}
/ L( M: C( Q- w2 G e' f' J// readystate
5 J1 G: Q: f- O8 Ufunction updatereadystate(){' h" |' m: R0 C5 Q4 B8 f7 b" u/ c
document.getelementbyid(ready_state).innerhtml=audio.readystate;3 v; D8 ?$ v- Z3 D( B4 w
}. c( f- l9 E+ Q/ {3 }7 w
// buffered
( _3 a8 @# x5 sfunction updatebuffered(){
6 q+ x+ o! ^( R& o4 D1 Tvar ranges=audio.buffered;1 [- D! O& a9 g1 `$ x6 k1 {3 O) P
var str=;9 t" @9 S, w1 ]& s0 G
var n=ranges.length;
6 w& M U8 @7 }- X: r( @0 lfor(var i=0;i<n;i++){; H% j- s/ W0 c8 G/ Y; d6 N
str+=(+ranges.start(i)+,+ranges.end(i)+);! X, J" r) u" ]; [% ~! S! Z
if(i!=n-1){& P8 X. K3 @1 e
str+=- Q( b1 {% s7 R& P
;# F# e% |6 \: b6 [: m; f: t. f# y* a
}% n1 l a, u0 C8 V
}
% }6 d& O# n. I* V( [6 _document.getelementbyid(buffered).innerhtml=str;; B4 f) O( v$ h5 n' a
}
1 b& r9 \7 c# r3 T+ y8 z9 ]8 X// seekable% J- k$ P2 p4 O# G' ^0 R% M
function updateseekable(){
0 R+ ?. { Q L$ ~var ranges=audio.seekable;
+ U+ n6 ]: y5 h% t2 q% Cvar str=;# b; F2 @% d$ d2 Q. O0 W
var n=ranges.length;7 W7 p3 z7 v7 O% c
for(var i=0;i<n;i++){
- {( |) ~4 M# x: Cstr+=(+ranges.start(i)+,+ranges.end(i)+);$ h, L' l7 v# @' H1 t; {
if(i!=n-1){
$ P& W: o; V# M z9 O7 b1 a* Estr+=: ~* W7 a: F! p5 _/ R4 ^
;# o4 B3 K5 ?9 I0 ] Z. u
}
/ g. [( r4 y3 u/ z}
. r- @) d) S# _ a F5 v3 x- ldocument.getelementbyid(seekable).innerhtml=str;
- @1 E# H* m. X4 \9 T7 F3 G- V}2 P U; ^, f9 f0 u1 A
// played) ^- @; C; W' N, D9 P
function updateplayed(){
4 P0 s3 p, ^1 T9 E7 S) I1 |/ @var ranges=audio.played;& {) Y {1 z+ ]: v1 q+ i6 g
var str=;
% k: O" E. A$ m4 z/ avar n=ranges.length;
4 x; D+ m. H6 }- l1 u: Rfor(var i=0;i<n;i++){6 }5 b8 _! }3 o. X
str+=(+ranges.start(i)+,+ranges.end(i)+);
" Z% e+ F+ P# b8 l; u* Hif(i!=n-1){1 f; _0 z" i% y4 ?
str+=
0 N( ~6 F0 e) R0 a% B! V) }' u;
' d2 g$ V2 n# B6 F: M- h6 M6 i/ P/ S5 z4 |}3 ^: V5 U0 @. q- H; v6 X
}
. B2 y$ P3 e$ H5 z1 Udocument.getelementbyid(played).innerhtml=str;8 t) f7 M4 D* E* H7 q( e
}: H$ R- W; K4 A4 S1 D8 ?4 }5 Q
// error
6 y( a4 ~0 ?. vfunction updateerror(){
8 u. g$ b) g3 V6 B' o+ c0 Zdocument.getelementbyid(error).innerhtml=audio.error;" a. l' X+ e+ e: n! p$ X* l4 J" W
}
- r5 x+ P& v* n- i: q: f! R, F+ b4 a5 L3 e$ f" ~$ g) M1 T
更多网页制作信息请查看: 网页制作 |
|