代码如下:
/ ^! k; }* {5 `$ p6 C5 Q<!doctype html>1 r4 N. y1 K% l
<html lang=en>
& M" K, O2 |5 f2 ~" i<head> c& C" J1 l9 H. [/ b
<meta charset=utf-8>
3 }4 ^& P8 K! Q* ~9 N% m+ S" o<title>html audio api</title>, t. @" K' }/ n9 j$ g
<link rel=stylesheet href=./style/main.css />
L4 T7 o0 ~/ e( Z+ |<script src=./script/audio-controls.js></script>" z7 _" P( F1 F8 v/ Y0 v
</head>( ^2 Y, m4 o3 \" v
<body>
9 T3 |2 {" D6 M4 N. W<header>% Q% k, U# Y! w( o
<h1>html5 audio api</h1>& y5 c9 e3 ]9 I' b* n& @: U; Q
<p>html5 audio api demo by <a href=<a href=> target=_blank>learnshare</a>.</p>
% y* |9 E ]2 W" l9 D0 S K! {; Y<p> Z q6 L( K5 X" l: [3 _" ^" _7 F% k% ~
last update @2013-04-23 20:40:00/ s( O9 X* S) H$ W
+ add info table' i. s; @) Y1 ~' M2 r
update @2013-04-22 14:54:00) Y( J' k, v i) Q3 n% t" R
+ add dom events- t- K5 `" @, P- G6 B2 W0 T: H
update @2013-04-22 12:47:00
* m b5 ]3 a2 _+ add getcurrentsrc button
' F9 m' l7 @3 b' a' Q4 m</p>
; r- W* B R2 J) z7 P- {& K<p>
+ G4 L x, c3 p$ Uview code on <a href=<a href=>( x& I9 M4 `' }
> target=_blank>learnshare.github.io</a>. 7 i+ H2 J" ^- j7 _" T
api reference: <a href=<a href=> target=_blank>htmlmediaelement</a> and <a href=<a href=> target=_blank>audio/video dom references</a># [9 Q+ k; Q- g- s' \- h, b
</p>
4 X+ k" J+ d5 T5 t8 ^0 J0 j</header>
/ m, l+ T/ J( d0 |& [" E0 T<article>& _. L# B6 @0 h& e: h" ]+ Q7 T. g
<section>
! {& L e D0 r3 Z( Q<h2>audio element</h2>
- V( `9 [, I8 I: [<audio id=audio src=./media/music1.mp3 controls=controls></audio>
8 M1 n* J" V9 p w7 X g; u# U7 E<p>open the <strong>developer tool</strong> to view console logs.</p>
: w9 \1 T) e- b</section>
1 C) a1 E" y' O7 N, k9 o3 I% G<section>: |) h. P, N" M4 {
<h2>controls</h2>
0 `7 l$ [& ]9 t<button id=play>play</button>
/ b$ c5 ^1 E* ^4 R) N. ^% n5 k) D<button id=pause>pause</button>$ J' z0 X8 ?* S$ s. _
<button id=get_paused>getpaused</button>
- w& n2 \( K' b; n* m<button id=get_ended>getended</button>" h! G. {! w- f' \: K- {: W9 X( @
) j% x; |' Z s+ F, G
<button id=volume_down>volume-</button>
$ K- X, m' k* O4 R) D- {, |2 \, C<button id=volume_up>volume+</button>
: U# A: ~# j3 X D. ?/ V& |<button id=get_volume>getvolume</button>
, ~6 U! C! l' O+ ^5 R4 ?/ [+ Q" L
% ~& D% U. m' S( T<button id=get_src>getsrc</button>
: d0 N' d5 z3 ^3 `<button id=play_music1>playmusic1</button>
$ c1 m7 A8 X- M4 }<button id=play_music2>playmusic2</button>& M+ A/ ^- M+ e; G9 r* C
<button id=remove_music>removemusic</button>& `2 B8 G0 g1 y! r
<button id=get_current_src>getcurrentsrc</button>
* h: U$ O8 \5 H* n
' J6 h( G) l9 o5 w) Y% X( j<button id=get_initial_time>getinitialtime</button>1 w& |6 h7 k$ |
<button id=get_duration>getduration</button>: j6 F u3 V% p# b7 d& V- y
<button id=get_seeking>getseeking</button>+ F; ~) `( ^6 A) O" v
<button id=jump_to>jumpto_30s</button>
% M8 P2 Z& S' ?# m. g<button id=get_current_time>getcurrenttime</button>0 g2 D! R1 _( \$ W x) i
<button id=get_played>getplayed</button>
, ?+ L- F( P( }$ u
/ m# @# F( p) e<button id=autoplay_on>autoplay_on</button>
6 T; `9 Y: Q& P& T; s) o6 C8 h<button id=autoplay_off>autoplay_off</button>. ^; C- f5 K( e/ u$ m4 H& L5 @- l
<button id=get_autoplay>getautoplay</button>0 X( H$ M1 B" ?& d& X. }1 b9 A
9 \% }4 |: a' ~0 t
<button id=controls_show>controls_show</button>+ ^% h z: |: V9 h1 [3 }
<button id=controls_hide>controls_hide</button># K5 Q1 p* {& M- C3 Y& ~$ L0 [
<button id=get_controls>getcontrols</button>7 h; k8 e! D% k2 Q E
, ^( D3 ?6 y9 o" B<button id=loop_on>loop_on</button>
( P' e5 a& K- l/ w U4 P<button id=loop_off>loop_off</button> ?% A) h# D% {
<button id=get_loop>getloop</button>
" U; u" S$ p" n4 \+ N6 A; L& U5 m
+ p# i) s+ D" |3 k/ L<button id=preload_metadata>preload_metadata</button>
, A R, e" A2 A2 w% {1 @. \+ ?. s<button id=get_preload>getpreload</button>% O( X" Z8 k. N3 [
; P& t. I. w2 S2 R! @7 C4 _<button id=get_default_muted>getdefaultmuted</button>; Y5 ?+ K; F! ^' _2 n- Y( r
<button id=mute>mute</button>& S6 D2 F8 U* G# s7 X3 j, e
<button id=unmute>unmute</button>
0 y% \2 r2 o- n& k<button id=get_muted>getmuted</button>2 G0 X8 Z4 ~7 c `
P6 i- I# J6 w/ D& J J8 W<button id=get_default_playback_rate>getdefaultplaybackrate</button>1 R( ?8 s, W i% ~, D4 x y6 d
<button id=playback_rate_down>playbackrate-</button>0 b# `- ]2 p8 i' H
<button id=playback_rate_up>playbackrate+</button>
: [: M! x0 ~+ p8 M) t: P2 F9 k<button id=get_playback_rate>getplaybackrate</button>
0 K* l! V& M) `6 s( p8 G8 }1 W& X5 R+ u3 c$ b0 } P* D
<button id=get_network_state>getnetworkstate</button>& [7 C0 Y7 g- A4 u" W/ u
<button id=get_ready_state>getreadystate</button>
9 J9 i- D% |1 W9 L7 g<button id=get_buffered>getbuffered</button>
* K! u9 A) ^9 S& O1 R/ c2 ?<button id=get_seekable>getseekable</button>
) C7 R3 W: q( t</section>
3 _4 b3 K) K. V" X3 \</article>
& f) P+ v) H+ N5 k- z% q<aside>
. v6 \9 B$ E* V& `8 i<section>7 ?" O8 g/ Z' Q
<h3>player attrs</h3>" K1 q+ P: o5 ~# o0 q, M
<table>* [! ?7 S9 N3 x* g2 l, O
<tr>
/ b d2 K; w }3 J- C<td>autoplay:</td>
5 d, K8 Y; u5 C6 C5 [' w: Y<td id=autoplay></td># V- G2 Q# a4 W, l+ |5 o: v
</tr>
9 r3 O4 o; l* H: k/ {$ v<tr>
: }& l1 V- k: l6 `, h; O<td>controls:</td>
3 S$ l2 Z% Q. ]3 t- V<td id=controls></td>
' B3 l A1 e4 n7 c1 _</tr>
) t) l2 t1 E5 m( D4 |<tr>
1 c/ c* `4 J8 W5 O2 j* I: L, y<td>defaultmuted:</td>
6 O% @3 \( I" ]# ~! P<td id=default_muted></td>
6 @" M d4 U, S) e& h3 |$ H: ]</tr>: W6 M0 U/ c4 q1 Q- h
<tr>9 o. _! J, R: P* V
<td>defaultplaybackrate:</td>
$ G6 z- @3 e2 D* T$ C6 q9 j<td id=default_playback_rate></td>
: v% C( k& b9 ` l: m</tr>" W/ Y( [) z2 h! W- n; g. E' E @! d1 \
<tr>* | [ O! r ^& D
<td>loop:</td>
7 H7 [- ~$ M# w8 W<td id=loop></td>! z+ M: ^9 g* N; Q
</tr>! n8 q. }, Z8 D; Z' m
<tr>, |' Y& }: k2 T* b) R3 M
<td>preload:</td>- x( n& g2 G( n* Y6 b/ j
<td id=preload></td>
8 y7 R; C* E& Z4 C$ s7 ?# w</tr>
( F8 @+ u: X* `2 p- F# Y, i3 C8 I) D, T</table>
( j! G0 c/ n+ U4 b, n( @</section>
/ }" O$ D, J" ]8 f# @6 v<section>! y o3 y, {( V2 B
<h3>player info</h3>& H. K7 D& O8 u
<table>% c" p( Z) O2 U, g! h1 M8 Q
<tr>- B! |+ z# ^2 _! I, k; O. u3 [
<td>src:</td>- K+ B. v1 p% `7 a5 q6 ^
<td id=src></td>) X' ^6 h( G$ B( I! A1 x# S
</tr>. |# D5 I" D! ?2 C$ g8 j
<tr>! v! N$ g' d. y+ }" ~7 J' ~
<td>currentsrc:</td>
G7 M5 T4 {, a4 m$ [# P<td id=current_src></td>. ^) F7 C" N9 ~5 M' l
</tr> y, a9 m" W2 { _, L5 Q* A4 Z
<tr>1 H) I" A1 |- R2 {7 N) d" v+ q
<td>duration:</td>' W+ E8 k* Q7 ?0 ]: w) S
<td id=duration></td>% z5 s# a; ]9 h9 z5 Y
</tr>6 V; ]2 v- f6 u& |9 V
<tr>2 h: _5 }$ B7 p
<td>currenttime:</td>
# n9 R* S. J! x: t<td id=current_time></td>: c% K$ A5 |7 w/ B( F( j: j2 N. D
</tr>" W2 A9 j5 d2 g' g/ y. d- t
<tr>
+ r" w! n0 a3 c9 ^# T& S/ d<td>ended:</td>" ?. b; x9 D1 l$ `1 ^
<td id=ended></td>+ Y( h' k" K! J5 ^0 d( y/ K
</tr>
0 `& {9 g4 ^6 e: a<tr>
# I# |) y3 Z+ b+ U0 ^, ^<td>paused:</td>
/ H( o& L, n% C1 u* R9 `1 D3 i<td id=paused></td>& g$ ^% \# b0 G2 v8 k
</tr>6 ~+ R. E: P8 C0 Z4 ]3 t
<tr>
, c5 t( P. F( s, a9 r O+ ~5 `% S<td>muted:</td>2 X; ]) G. z# ]$ P* a0 i. @8 p$ d3 X
<td id=muted></td>% \0 ]; t' N( _
</tr>$ e2 ?& I' z) g: G
<tr>7 ~# S# S9 r- y* K6 P7 u! ~% h. E% w
<td>volume:</td>
; [* E- K" C1 {8 Z! U; ^<td id=volume></td># v9 {; w1 @# d: p( g3 z
</tr>1 R: D9 N* M4 `5 f1 J; ]
<tr>8 D( ?& Z) {) d1 P
<td>playbackrate:</td>
& t. U5 y9 ?, u$ B* v0 O<td id=playback_rate></td>
; @6 ?2 @' a D% ?: p</tr>! `, x1 t3 u9 y* M7 t6 r4 I
</table>
7 l8 O+ V+ l% ~& o& }</section>3 D3 B- {5 Y' ^
<section>
X* l8 p; Q) ?; k& k<h3>play status</h3>
5 C% o& h- q0 F) J& \/ q, N- C* X3 ^<table>1 F9 G" Z% m* L( [" F% e* Z) ]2 [; A
<tr>) X7 z- F! H/ n1 \
<td>networkstate:</td>% ?. P2 d3 k9 Y( N. e8 N2 R
<td id=network_state></td>
& a7 o) x! h p( r2 G$ d9 Z2 C/ ]</tr>
, H0 w( G: K ], O+ H<tr>
! r. A1 J5 \( O. W<td>readystate:</td>
% E" q' m, b4 Y F& B<td id=ready_state></td>7 o Y4 V6 s0 ~4 I7 F$ ?
</tr>
4 q+ I& S" E5 C* _<tr>
" q% J5 U& S0 V' Y# ], r<td>buffered:</td>
; k0 N. W( `, _. O- x- P<td id=buffered></td>. g4 |( {8 a. ^. I( {! k
</tr>
% J, o$ j$ ~2 C, o( W<tr>4 M v3 D- i2 z6 m
<td>seekable:</td>, r4 z. G D* V8 c
<td id=seekable></td>; c% ?6 P0 ]+ u2 s* Z
</tr>
1 ]$ _0 \ x1 W& t<tr>
: ~+ a% P% z+ {- N1 Q1 w<td>played:</td>
) e* J. J. a6 b6 M. R' s<td id=played></td>% r7 J) B* H" \
</tr>
; ?) x- W- i3 J* C<tr>
5 L+ ~# s3 ]7 y2 u9 |7 w<td>error:</td>
# F3 n. M5 ? i2 H<td id=error></td># ?% r: ]5 K9 [6 K7 I
</tr>
( E3 R' q% Z. X' T" P1 S9 i7 w8 g</table>' F- n+ l4 r5 V* v3 Y, s5 @$ ~
</section>
% l' G" G$ ?: F- ^* q, h* |</aside>
- h* I5 g x* Z( B6 I9 n r% i</body>
. }5 k& K) u, K& `5 D- g3 W</html>
3 C; j9 }. e1 t$ _( D# P+ L% D/ I# v, U
audio-controls.js
/ n* \; C) e# O0 N% u s" k0 E( ~3 n5 G, @
代码如下:$ X& A! x! d2 X
window.onload=function(){
+ r& \; N1 J% [+ o c7 _9 Z// get autio element
8 F; Z, A. d1 n* X- B7 lvar audio=document.getelementbyid(audio);
; |0 M$ W z7 ?! h// play()
; b! ^) Q7 G; z }: t; v( Fdocument.getelementbyid(play).onclick=function(){
* t) t; g& T, b) U3 raudio.play();
' _" |5 n0 g8 f Y5 t+ O$ M! dconsole.log(play);
1 @# `% d$ E& K( G: K2 D};. _0 k0 O; n; C# m0 h" A" l, ?
// pause()
8 U# g5 g1 S2 A) @9 y( ddocument.getelementbyid(pause).onclick=function(){
( k6 H" v( O1 i% C4 a2 Y7 F5 u' Zaudio.pause(); B* ] k3 x/ K: V% f! i
console.log(pause);5 S$ Y# r5 U2 P4 g
}; a( ^- P) y( J) `; {
// get paused# B; I) a" C/ g6 v1 a
document.getelementbyid(get_paused).onclick=function(){
2 m+ F1 i# Y1 Z, h; vconsole.log(audio.paused: +audio.paused);, C' t! t1 L! }* ?+ Z6 c" f, E
};+ p, n3 t* s8 C/ N2 `
// get ended& R" ~3 X2 \* T0 c2 i
document.getelementbyid(get_ended).onclick=function(){
4 N/ C. c* H2 \! kconsole.log(audio.ended: +audio.ended);
& f/ f) f. ?$ R: B' _$ O};# h6 k H0 B- B2 O9 z
// set volume-
. A1 X% L; R8 h: {& k8 gdocument.getelementbyid(volume_down).onclick=function(){$ {1 _' o* U- r+ `! a+ d
audio.volume-=0.2;
6 r4 r0 J' e7 @ \console.log(volume-0.2);
: O$ I! `5 K; l4 w6 w};, F" ~. _3 `( L; o& d8 k9 d
// set volume+
/ l# H$ B) Z; S4 E+ |) Xdocument.getelementbyid(volume_up).onclick=function(){
2 F5 f- A- V6 aaudio.volume+=0.2;* p2 @" q, M; Y ^9 a
console.log(volume+0.2);
( f) m+ I* z5 ?& V$ q2 W};- v9 z p5 Y I B6 f0 d
// get volume
2 S- x. n! [9 `- ~document.getelementbyid(get_volume).onclick=function(){$ Z- T, d. y/ W1 H
console.log(audio.volume: +audio.volume);
* [0 T) A# A" g; x' ]1 v( I7 z9 B};
4 F- G3 c& H) U9 B// get src4 d- j- z3 {- ?
document.getelementbyid(get_src).onclick=function(){
0 k1 W- C9 P* `0 Z+ }1 Vconsole.log(audio.src: +audio.src);
{% w4 ], Z1 j* A" M4 G3 `8 l};
: V/ p/ j- z+ u @8 H% Y// set src_music1; t" v b9 M7 z& k8 d5 p
document.getelementbyid(play_music1).onclick=function(){
, }% c6 v' a4 V" Uaudio.src=./media/music1.mp3;
: X3 [, d( c& k' A: `updatesrc();6 m1 b) k* t8 I7 w
updatecurrentsrc();
6 L7 ?0 _; g9 t& ?. yconsole.log(play music1);1 T0 O: [; ^3 A7 m. y
};9 k: I2 N5 [# p% [2 q% N& D' Y
// set src_music25 v, h f+ r3 Q. t* p9 S7 `
document.getelementbyid(play_music2).onclick=function(){+ k+ W* b" t. V I9 _' i( r; ~
audio.src=./media/music2.mp3;' ?: d4 w: e( Y' }: p: [: `+ Z
updatesrc();+ m! D8 X, n9 B
updatecurrentsrc();: `( X: H4 @# u8 h" ~4 o4 V
console.log(play music2);
# n( w8 O" \0 p8 [};2 [/ R& Q/ \8 T0 [
// set remove_music
% P) k" @5 A8 n( T7 d0 ~% D- Tdocument.getelementbyid(remove_music).onclick=function(){: _6 n1 m6 `, j! F q) m1 [
audio.src=;
. q1 D; c0 G4 aconsole.log(remove music);+ y) b8 T% i! M; F
};
6 c, |' _. k5 T// get currentsrc
* t! x+ g1 A7 A# J3 v: r& Wdocument.getelementbyid(get_current_src).onclick=function(){% J% s: d% X0 V1 c
console.log(audio.currentsrc: +audio.currentsrc);
: K9 q3 P$ B5 L};
* b9 \6 }; L4 g8 G! T" s// get initialtime% V3 j9 \5 l* h9 J
document.getelementbyid(get_initial_time).onclick=function(){ j' N) Z* |5 P3 `& c1 j2 E- p0 y
console.log(audio.initialtime: +audio.initialtime);
: F0 k3 k0 t+ X3 v& Z};
$ g: i+ T" _; x// get duration& \8 e* L( x" E* L: w) [
document.getelementbyid(get_duration).onclick=function(){
' }8 w ]- b% d& ?: z, B. hconsole.log(audio.duration: +audio.duration); E# F6 C) X' b( }4 W0 o; t
};
. d5 X" i+ v2 ]. F7 G// get seeking
% D, \* u: o: W- S+ xdocument.getelementbyid(get_seeking).onclick=function(){' k# \' B( n. B0 X9 {! B' X; y
console.log(audio.seeking: +audio.seeking);3 w) z! H( H+ g
};+ H' U C j0 z: u1 P: R+ z8 }4 ~
// set currenttime
- e* R* X0 {$ }( }: m+ vdocument.getelementbyid(jump_to).onclick=function(){$ V! x2 D2 e: k( a/ ^4 v
audio.currenttime=30;
+ A( P! m0 U. D+ A V+ F6 d, oconsole.log(jumpto 30s);8 O1 V. L& e0 Z: a4 |2 z M
};5 n) w9 F0 p1 ` K; S
// get currenttime9 V' U, v% N% O) K. l
document.getelementbyid(get_current_time).onclick=function(){) X8 W' m. O% P# s+ \' E
console.log(audio.currenttime: +audio.currenttime);9 I& D$ O }: q) K6 q% }3 S
};5 E/ |$ P7 Q/ R0 G! p5 B* d
// get played
- K: k/ y1 t% t8 Tdocument.getelementbyid(get_played).onclick=function(){
8 Z: C/ n- v0 `1 r- l1 Zconsole.log(audio.played:);
+ A, Z& T; u/ Q6 p& Q/ }: Ivar ranges=audio.played;- A) q* p/ s$ n6 f- e Y
var n=ranges.length;
. c3 v& m2 l4 Q* {5 D3 Bfor(var i=0;i<n;i++){# l; @9 Q# Z8 d. a5 n: x R5 I# X
console.log((+ranges.start(i)+,+ranges.end(i)+));
1 w+ l& P3 t! D A" G}
7 S* a. K; _/ A) Y- b};
6 G. ?+ R* _$ K// autoplay on
) g$ [( A3 M+ Y$ Z+ x' Ldocument.getelementbyid(autoplay_on).onclick=function(){
% g+ J$ `1 m9 O. C6 Raudio.autoplay=true;
) y" t% y; B2 R. T) [/ Pupdateautoplay();
) Q, K0 C* [; ?+ G$ ^console.log(autoplay on);
( d( b6 R) ?8 z I3 c# H7 _0 s};
+ |: a& ?+ A- A" Z0 O v' J! z// autoplay off
( ~+ T' }/ c- S, `4 Y, ^6 edocument.getelementbyid(autoplay_off).onclick=function(){
`4 N9 q8 D1 O9 Q# m1 Y/ {& Y: Raudio.autoplay=false;: B& O C1 e3 j h S9 M2 t& i
updateautoplay();
( F% A6 b1 p' @$ z, F, }console.log(autoplay off);
; V1 ]' \/ i. S0 J, t9 ]( ]};
% n l0 e$ z; B7 x// get autoplay
; \* O" g. Q3 s" f* Vdocument.getelementbyid(get_autoplay).onclick=function(){
; u1 w2 [3 I! I9 U( W( n& xconsole.log(audio.autoplay: +audio.autoplay);
- T8 q0 g% a- n* G6 q5 H};
3 [/ |( }# @0 M2 \# ~// controls show7 x5 e1 f' u3 J- O$ R$ F: H
document.getelementbyid(controls_show).onclick=function(){ d n- F$ p; _" ~
audio.controls=true;
! o% U$ @! `; n+ g! `$ hupdatecontrols();( l9 n! n+ [9 b' A' w2 I6 T
console.log(controls show);( _ P: N, y8 I% x; M% P& d
};
+ v- ]2 t& j% V! d0 c// controls hide
7 R5 t+ @- ]5 I5 @! a( @, `document.getelementbyid(controls_hide).onclick=function(){1 H% S4 R+ n) X* O8 h/ H
audio.controls=false;, J/ d; f3 C5 b8 _
updatecontrols();4 }1 V; \1 c2 ?4 t. Y; _- `
console.log(controls hide);0 y% Z' E9 G7 e2 Y
};
# N) r5 M4 q# q' _# l5 b// get controls
C( }% j0 B3 O5 E7 W2 Vdocument.getelementbyid(get_controls).onclick=function(){2 K( A3 N7 u. ~9 d0 X
console.log(audio.controls: +audio.controls);9 v. v0 O/ {" ^! s' X' p. b
};
9 d% |6 k, g+ Q2 p+ J// loop on
$ Y1 I8 e" O1 h- S* f% ydocument.getelementbyid(loop_on).onclick=function(){8 [. t5 m3 m& n% N3 n7 s' O
audio.loop=true;8 y: P, |: D' j& _4 v
updateloop();
- d, D$ E- I% Q; E6 Oconsole.log(loop on);6 Y- E, l; P2 W
};
' ~; B6 _3 E" e) U// loop off M9 i- {- U0 v. ^
document.getelementbyid(loop_off).onclick=function(){
% w/ n' l* w) ^7 [6 v) E' o0 \# maudio.loop=false;1 z0 X2 S2 d" d* q$ b
updateloop();
`, q6 r7 m9 j0 }9 rconsole.log(loop off);
$ A. k& P# N9 g5 S: j; b4 ?};/ T" N" g/ K" r+ }; J: N- P c+ j
// get loop! V& }: X1 I" l# j
document.getelementbyid(get_loop).onclick=function(){3 V# i8 s( q Z4 K: i
console.log(audio.loop: +audio.loop);1 h* y: }5 F. m3 b' W( x
};
7 `( V- L1 [7 ]$ V// preload metadata
( b; E: B0 C1 B; h+ t$ ?, ?document.getelementbyid(preload_metadata).onclick=function(){, Z8 }: I% k \* ^$ ]# ^/ u- \
audio.preload=metadata;! S' u( x8 ?9 K) `
updatepreload();8 U" u* e6 `2 v6 a4 k5 T2 b
console.log(preload metadata);4 `8 z& P' f1 L
};
5 W5 F; i! G3 k2 p// get preload
: A9 c& m7 x" w6 [document.getelementbyid(get_preload).onclick=function(){
4 u/ f& r$ |( G3 Z0 ?3 }1 oconsole.log(audio.preload: +audio.preload);1 N# K- p P' R' Z! v" [
};
" I) y" d& u% b" h! S$ T// get defaultmuted
8 G: x) |3 w% ^& ?) H+ u& gdocument.getelementbyid(get_default_muted).onclick=function(){: I. T3 U2 ] A& b7 \
console.log(audio.defaultmuted: +audio.defaultmuted);8 d4 [& w& y. C4 e2 J/ ]$ i
};, i F: H$ W7 F. ?' ?' ~: k
// mute! W+ _ w, G; {+ X: A/ A `' x
document.getelementbyid(mute).onclick=function(){6 H- G( t7 Q& c4 [! U3 g0 n1 I
audio.muted=true;6 q! S$ u9 X( O, b
updatemuted();8 j% j& _( c, T3 U" O
console.log(audio mute);( O) r1 R0 X* s& ]- @ S+ X
};
" a8 x/ f( ^4 s- ~. o. W! `' t// unmute
2 R, e, |5 b/ A4 @- ?7 X7 Ddocument.getelementbyid(unmute).onclick=function(){
7 t3 t7 {- } Daudio.muted=false;
- ^6 j7 m0 |+ X3 Q# S6 g4 wupdatemuted();1 S% c' i H8 D$ P7 V! c
console.log(audio unmute);
4 Z) Q- B# |+ g2 N* ]- Z/ u7 v3 a% k};' m3 n, o: N x' G6 X V$ M
// get muted
/ ]! A3 K. _) w; E( rdocument.getelementbyid(get_muted).onclick=function(){
7 d2 c- r a" _" Aconsole.log(audio.muted: +audio.muted);
# D! O0 I- w6 P9 z5 U};0 J3 c6 m" }3 d' C
// get defaultplaybackrate
6 O! k3 A/ h$ K, Rdocument.getelementbyid(get_default_playback_rate).onclick=function(){" M9 M: h! l: u; M2 x
console.log(audio.defaultplaybackrate: +audio.defaultplaybackrate);
* |' P% _' C" P# c' V};: k3 E% d+ p3 A- s7 |4 q/ R9 {
// set playbackrate-
; t" T- Y A/ R* ~$ @document.getelementbyid(playback_rate_down).onclick=function(){1 l. A. ]( E4 H# _0 ^
audio.playbackrate-=0.2;9 i- J9 i' z, [1 {- L
console.log(playbackrate-0.2);) B* e& u3 B$ H+ o
}; B* U H: O3 q" s( |
// set playbackrate+0 K4 j2 T4 e4 E2 c# |* c/ L
document.getelementbyid(playback_rate_up).onclick=function(){* N. N2 j- ]" k, O5 l8 z
audio.playbackrate+=0.2;
# Z3 ~; K; H8 f+ a1 dconsole.log(playbackrate+0.2);
6 j- M" W2 k9 Q/ J* Q/ ]};3 j! @& C9 f9 X/ v* i
// get playbackrate& t; }* }: @. Z3 d2 e& t; u+ ]! l
document.getelementbyid(get_playback_rate).onclick=function(){+ D* @8 k) I# C5 K" \
console.log(audio.playbackrate: +audio.playbackrate);
1 ^: X$ h6 r$ T1 V, [};
. s0 o: d- B/ [; c( p// get networkstate
a% u! s: k* g Edocument.getelementbyid(get_network_state).onclick=function(){% q4 O- }. p7 e4 k6 A4 h% c
console.log(audio.networkstate: +audio.networkstate);
+ a, T$ Z9 _3 M2 B$ C};
3 x2 u2 F/ f/ R7 g1 w// get readystate2 ?( \0 B* I: [4 Z
document.getelementbyid(get_ready_state).onclick=function(){! d& n+ [& `4 k7 Z+ S
console.log(audio.readystate: +audio.readystate);. ?. b) b1 ~0 r: F
};
$ h |' U9 y" O" Y/ V// get buffered
! M8 i7 |4 ~ V$ U) O edocument.getelementbyid(get_buffered).onclick=function(){
. x6 J$ W4 s) z5 j& p9 o, Fconsole.log(audio.buffered:);% L, c* ~+ W8 ^7 H
var ranges=audio.buffered;1 h- |/ r( f" u! e
var n=ranges.length;
9 u0 T; k8 P( s9 a; p+ w: @& D9 Ifor(var i=0;i<n;i++){, Z3 U8 w- ~7 x
console.log((+ranges.start(i)+,+ranges.end(i)+));
5 K% M" ]2 j: d' v+ t}
* [& q. [, T6 j0 }0 m9 k};
) K8 c! {- O& Y6 K% o& |// get seekable
5 h4 k' ]9 i/ E7 d2 |/ P! w) fdocument.getelementbyid(get_seekable).onclick=function(){# Q+ A! B! i- T" `
console.log(audio.seekable:);7 h) x3 o+ N& G; m- b0 Q3 x. n
var ranges=audio.seekable;( B0 j2 {4 ?9 _" C7 E( D
var n=ranges.length;6 R0 _1 R- F# }
for(var i=0;i<n;i++){% C. S- ~; ^ c4 C
console.log((+ranges.start(i)+,+ranges.end(i)+));
) G2 M) l9 n! @2 L6 \. m}2 e) o# ]1 r. b% X, o
};6 W4 w3 X* R5 E6 ?: n
// dom events+ P: i( }- F# ^3 \( R: e# r1 s
// abort
0 ]' D# Q6 a& N* N) g! a5 K5 {audio.addeventlistener(abort,function(){) @( a$ F$ |1 ]+ X
console.log(event:abort);
/ Q7 S! y4 ]1 D) n- i});8 S' O$ Q# F2 H4 c4 r7 L7 ~
// canplay
2 F& u. s( b; B) n: kaudio.addeventlistener(canplay,function(){
% p( `( l |# S; M. k' z# F9 b& o2 \console.log(event:canplay);
- p9 w( ~* e M9 M- t7 N});
, ^$ J/ `5 }! B+ q" P, H: g// canplaythrough
# I9 p/ g% v- b' D! `audio.addeventlistener(canplaythrough,function(){3 H, s) K5 y( v) e R: q0 w0 q* `
console.log(event:canplaythrough);; S0 X$ G+ N' g
});' A' z% n# d0 p, J! A+ T/ T
// durationchange
4 r% R* e" h/ |) @' Eaudio.addeventlistener(durationchange,function(){1 ^7 E/ F) N: n0 } [$ B; Q; D& M
updateduration();
$ A9 [8 N" J- \console.log(event:durationchange);
& A+ v5 N, A$ u. _, O- @" \});
7 i5 h# b0 u. r$ ^0 m/ E! Q% a// emptied
( \. b& }; o0 I( w8 Uaudio.addeventlistener(emptied,function(){
; t# r# X c7 n6 U( n4 c. fupdatesrc();
8 I% J8 w( [7 V3 qupdatecurrentsrc();; Z$ n. K8 B* T A5 v! \7 k: y
updateduration();) U( f6 G7 C& |9 j6 U' Q3 T
updatepaused();
* S" r/ A6 Q D/ B$ z$ k# o# ]updatenetworkstate();
- _' n5 s# Z4 M% z+ ]* fupdatereadystate();
3 N5 P7 M* o8 n2 fupdatebuffered();
5 u6 k- `1 y) p6 c; t9 pupdateseekable();9 e. ]2 R1 S. I8 ?7 x" u
updateplayed();# W! T4 Z3 C0 g* @, W
console.log(event:emptied);
1 _( P% Z+ m: ^. D" c4 H! L});3 O( i9 t! Q8 L0 W2 R3 R
// ended
2 r+ Q' \5 p: e6 [/ Paudio.addeventlistener(ended,function(){7 q9 k5 Z2 A9 s3 J! U
updateended();
7 M# z% S; u+ Fconsole.log(event:ended);, D3 ~0 T! H- O W/ r' p. e$ _! C
});/ L4 \9 X9 v% X7 i7 Z; p" E
// loadeddata
5 A& c- t1 [, H9 maudio.addeventlistener(loadeddata,function(){
' Y( f' b$ p3 _$ D% L" {4 f* uupdatenetworkstate();
/ a, [+ I4 g3 Oupdatereadystate();
' G! o1 T" C) ]0 X% r; I# P& ^updatebuffered();7 X) J2 K8 J. d$ H/ e4 }; T/ y
updateseekable();# Z( w# g! v: X* U+ {
console.log(event:loadeddata);
6 B' @& `- \* l+ K4 c});# x' j6 I8 w! t0 r E x
// loadedmetadata9 }0 @: U; e2 v( V; [. p
audio.addeventlistener(loadedmetadata,function(){% S+ z* f! L6 D5 i3 R
console.log(event:loadedmetadata);
# l% X2 ?* l9 p2 N& | A});
6 \0 I- q8 U: {8 i// loadstart
: i8 {1 e9 B9 zaudio.addeventlistener(loadstart,function(){
/ P% F i/ o! y8 L* }" Yconsole.log(event:loadstart);0 y7 W' c3 V8 Y. S3 |/ o- G+ G8 D2 `, a
});8 L3 }! i( _4 p' _) E3 K4 _2 V
// pause' F5 I! U. m( k2 U+ A
audio.addeventlistener(pause,function(){
7 F8 t! ]6 A6 Q7 a2 ?0 Bupdatepaused();# U% V2 R8 a) |' ^. F( ?3 R; q
console.log(event:pause); a, m0 A) \6 g4 N! Z5 N
});
, ?6 J; k* j7 y// play
" Z3 K) `) ?5 M! ?! Q8 V# \; j! Yaudio.addeventlistener(play,function(){& m0 M9 Z8 [( a6 B( \6 e6 j8 O
updatepaused();
+ F7 z* c& }- {) v+ x1 V4 ~console.log(event:play);" t. c( z3 T- S$ Y, z/ K' e
});
( v! h/ L$ m' v1 P// playing
. U* S) u$ D" Q# z3 p6 y* caudio.addeventlistener(playing,function(){
7 M$ e/ l9 s8 z5 k6 B" J9 aconsole.log(event:playing);
# c- F2 O7 i) ~' z5 F1 r});- C4 B1 |/ G% g
// progress
) X- ~5 o+ |! _; _( ]8 Kaudio.addeventlistener(progress,function(){
$ R2 `7 E1 g7 p3 v7 dupdatenetworkstate();
" N+ l# L3 A% Y" ~5 q# f# Vupdatereadystate();" Z( K: x; |/ A, c& |' B
updatebuffered();7 m8 j. g; T9 ?5 B; C9 t1 a8 \
updateseekable();
# Z! L+ W ]1 ~, o9 ?# v) u/ Vconsole.log(event:progress);. F3 m3 V' I/ K/ O& F
});; o" K4 A( I `) {! n5 u- Z% d8 ]
// ratechange9 z7 C- `! o( g& ^7 q( g# l
audio.addeventlistener(ratechange,function(){! b" a2 I6 \( g5 a
updateplaybackrate();
i N% p% x9 m% V5 S) ?console.log(event:ratechange);
* O# v& M/ {( x% @/ O});7 l+ m U& ]: g( k
// seeked
+ f1 f( Q1 L0 Y0 n; Paudio.addeventlistener(seeked,function(){# f. d) y7 c/ n5 c# _3 L/ K- p
console.log(event:seeked);0 ^* t, i2 X( B# b9 n" Q3 t
});
5 d% `8 I: `: m' ~+ J4 n// seeking% n! f4 V2 Z* F+ F- f
audio.addeventlistener(seeking,function(){
0 L9 E5 H1 L4 o% E8 W8 F: d7 {$ Oconsole.log(event:seeking);, ]) a( c- E6 P3 @1 T
});% T6 X" L. p6 ?# U' [, w
// stalled# O8 J0 s* }5 A) a( z5 g6 ]0 S
audio.addeventlistener(stalled,function(){ l3 L9 [* C: c, f
console.log(event:stalled);
9 y2 V2 v" u. e});! t# O: t( Z7 F1 F
// suspend1 [/ h0 d( V8 p3 C
audio.addeventlistener(suspend,function(){
# g& k* q1 R2 Oconsole.log(event:suspend);' G0 ~1 v4 Z- J. w. i
});7 u7 g6 W0 i8 w* X2 b7 G; v+ F/ U. w
// timeupdate; C+ ?' D1 @, a/ S+ e
audio.addeventlistener(timeupdate,function(){) W) ]8 `1 c7 w5 P- U$ I
updatecurrenttime();
: ^. j, `% l/ h/ w" |updateended();
2 t0 `$ j* J- [! Mupdateplayed();
n: X: l7 Y6 m" f: Rconsole.log(event:timeupdate);
p- W0 }5 e: P1 z1 G: e6 W3 D});
M' ~# V1 P3 F) R ~2 ~// volumechange. ]/ W# r3 f: g
audio.addeventlistener(volumechange,function(){8 I1 h' ~ T: t1 F
updatevolume();
" c* Z- g8 ]7 w4 g- R; zconsole.log(event:volumechange);# d7 Q1 E4 x8 d: M, e* |
});- m; [& P* r O- q; |8 G
// waiting
* |. L. y" P; p( k) V/ A3 |* {; X6 iaudio.addeventlistener(waiting,function(){- ~! l7 @1 w% B9 u
console.log(event:waiting);
5 n4 B% r U1 `});
4 ~) D: [$ k' k& B6 hupdateautoplay();7 ^, J. V4 q: k! y* Q- B) W
updatecontrols();$ G1 D) E j0 g9 G2 W2 k) ^
updatedefaultmuted();
+ j+ w. j1 Y" t1 Wupdatedefaultplaybackrate();
2 n" C6 w3 M# i6 O, Xupdateloop();; H" G" Z3 I3 G. q, _
updatepreload();
' |: M6 k, Z3 t" h1 fupdatesrc();
. H, N$ T: r5 U4 p Oupdatecurrentsrc();. [+ K7 @, r2 c, h
updateduration();
* D0 h2 L9 z X( O% Supdatecurrenttime();
9 l3 L8 h; ^/ Y- vupdatevolume();
. E E% X: t9 e/ v+ w- a$ xupdatepaused();& F$ Q9 b1 |8 q8 K" V
updatemuted();/ ?, S% a# E* [# D4 f) N \
updateended();7 J0 G5 I# S ?/ I
updateplaybackrate();
& L+ A- b7 f( [. {' B6 }' q! eupdatenetworkstate();8 }8 u; Q+ J5 `, G7 [
updatereadystate();
: x1 d2 M5 a7 z5 U4 Uupdatebuffered();" C3 S2 G* R% Z! e0 K% Z
updateseekable();
* ~3 F) Y" q N0 Cupdateplayed();' ?* c! W; C" g/ J, e* I
updateerror();
. _6 {( @( O0 G6 K# D' ?};+ O& |# F: [7 l6 `# F) _
// functions to update info table! c" _# w0 g1 J" V0 J
// autoplay. e4 I. S) [, U, [" z
function updateautoplay(){6 p9 _6 ^* M$ B/ [. W: t) F
document.getelementbyid(autoplay).innerhtml=audio.autoplay;( s' d( J( `7 a M; u
}
: ~0 B1 B0 n6 ?( _1 M; N/ h% ]// controls
( y. r) X, e+ L1 @7 m/ `, l3 j$ L) efunction updatecontrols(){! y, A" M; v9 ^8 v- f
document.getelementbyid(controls).innerhtml=audio.controls;
3 H, E+ F* P& f$ G}# h+ c* I" R$ p1 }0 t* W9 X
// defaultmuted3 m, I& L L- K1 h
function updatedefaultmuted(){
G e. P& M" |' f5 Q8 T% y; ~5 Udocument.getelementbyid(default_muted).innerhtml=audio.defaultmuted;
* Y% J: O v& H}
+ T9 p; P9 ?3 n+ _' D$ M// defaultplaybackrate$ @1 `4 m$ {7 c% s$ t
function updatedefaultplaybackrate(){' [: y1 ~( t% @$ A# p! d* w# Q
document.getelementbyid(default_playback_rate).innerhtml=audio.defaultplaybackrate;
, v! K- G9 c X}
' X4 Q3 X4 R( E6 A// loop
; Y4 {: e# k! u$ gfunction updateloop(){& b% X1 Q& m5 L3 q2 K
document.getelementbyid(loop).innerhtml=audio.loop;% x4 N4 i6 v4 G3 D( B- o
}
* j+ i1 z! [" L% S; N: Y- F8 ?# L( f// preload; ^3 V6 M: c/ `( n- w2 Z
function updatepreload(){
2 v* X0 d% s, H8 d+ Fdocument.getelementbyid(preload).innerhtml=audio.preload;/ F2 O! P5 o( @. p& v
}2 |8 W& f x" r) g3 ?+ u3 H8 a
// src
2 |- o1 X$ K4 j$ z" ~) ~function updatesrc(){
! ]* g9 q% B" F5 ~$ S0 h3 R p) H8 `0 Ndocument.getelementbyid(src).innerhtml=audio.src;1 @! i% J8 y k3 ~5 e$ J9 w$ Q/ E
}
. v# O7 D4 b/ P3 x// currentsrc1 J# p: A; i2 R% s: W
function updatecurrentsrc(){7 _6 h s6 N1 e: l
document.getelementbyid(current_src).innerhtml=audio.currentsrc;
8 N% r4 U: F9 }6 n2 Y3 f) {( C4 U! f}
0 b$ f/ s+ X2 r// duration$ i* W `; d5 w
function updateduration(){0 \, c. S' K9 h5 i6 X! q2 H5 Z
document.getelementbyid(duration).innerhtml=audio.duration;, U& q2 B- F* x9 C7 v" d& G2 N( w
}
5 T( H3 ^$ d2 L/ Y// currenttime
! N- M0 T' w. N$ X0 Afunction updatecurrenttime(){
t5 E. i. J' ]! E1 b, odocument.getelementbyid(current_time).innerhtml=audio.currenttime;
5 t& k* w/ S% R. X2 G8 G}
7 U7 a: S8 Q' J9 Q% G, Y+ y# |// ended
) ?- \4 p4 O. p+ _# R1 E B: cfunction updateended(){1 Q3 ]7 ?! x* r$ k
document.getelementbyid(ended).innerhtml=audio.ended;# z! _) e; Q" [# Y1 \. }
}! h: _7 O( o! I( p, M! K5 B0 j
// paused' L3 }: P. X& S. \0 a/ [
function updatepaused(){
6 A1 o0 j( t- A1 m8 Jdocument.getelementbyid(paused).innerhtml=audio.paused;8 X- O: W6 Q) c# d$ d
}1 N1 T/ o9 }) w4 F6 \" X
// muted
- X( A1 L# U) `/ r+ P P8 Vfunction updatemuted(){
4 r% ?4 p( U, Q+ A7 {: i9 A4 n" j4 odocument.getelementbyid(muted).innerhtml=audio.muted;
) W; N' V* p2 c* D) V}$ q1 B9 o# {+ ]) Y6 |$ j
// volume
& a: X- t% Q( @% B) zfunction updatevolume(){
5 t+ I: L- i( l# Zdocument.getelementbyid(volume).innerhtml=audio.volume;2 m6 I/ V$ o5 N2 W# ^0 {% g8 T$ R
}
; E9 f# L+ ^$ Q: S# I// playbackrate
( E# F3 l9 U& [( _/ nfunction updateplaybackrate(){
$ K6 z5 T" f: m! ldocument.getelementbyid(playback_rate).innerhtml=audio.playbackrate;! U/ h, k! P$ a3 |5 Z4 @ [. F4 N
}
* c2 d' R/ E; L! j0 p9 U) b- Q// networkstate
0 W9 w4 {0 Y7 dfunction updatenetworkstate(){
6 h9 j4 R6 _% F/ rdocument.getelementbyid(network_state).innerhtml=audio.networkstate;
: I+ d: u) N5 q b}8 v/ ~, k9 D8 Z) g7 X; p
// readystate! z( U7 E2 N0 b5 c5 g. O
function updatereadystate(){; x9 o, o E B, P* v( ?( s7 p
document.getelementbyid(ready_state).innerhtml=audio.readystate;
- b% J3 @5 r7 M& o/ \0 `& P}
* y( I; I5 a; j! V, h// buffered* X6 k% w! h; i1 i; F
function updatebuffered(){' F( F# D2 O4 D0 \. h e# Q9 p$ E
var ranges=audio.buffered; h$ }, i8 I5 K( L- `1 J& w6 e
var str=;1 y( j: J; ]3 e6 {6 w6 R- t H/ p
var n=ranges.length;+ C: [/ s7 B' `; ?4 `$ B
for(var i=0;i<n;i++){
5 `6 E5 M8 S8 k3 W7 E# Nstr+=(+ranges.start(i)+,+ranges.end(i)+);) P; X# m8 r1 f, ], F+ a7 F
if(i!=n-1){
: I' J6 ~, G! n; Dstr+=
* u! M2 B1 G, B1 x8 ]9 j* V+ X;
0 `' J4 i* n$ t# |}, f% h$ I A# x" ~( p: a
}# O7 `2 x; @8 i+ \
document.getelementbyid(buffered).innerhtml=str;. Y3 y( H T+ O; ~6 P1 g
}5 L" u& E( m: f3 T2 s r, i
// seekable9 q: y! i1 f/ k g
function updateseekable(){& S( R( i+ S. b5 ^& O
var ranges=audio.seekable;
6 F% d5 R C; U) [) x9 }0 gvar str=;+ y. ~. Z- W0 A. ?: Y6 M
var n=ranges.length;/ |5 M9 p% x' l+ a% t- u& C
for(var i=0;i<n;i++){1 D& }1 ~8 R$ e4 ~6 Y
str+=(+ranges.start(i)+,+ranges.end(i)+);+ B% D9 L: f# V' c
if(i!=n-1){
, U" M4 y: R1 Jstr+=
4 M s6 [( l2 d9 {* W;
4 R; v. c- j, |/ g}
: z2 W2 A" }0 M N. O$ R' \}) K6 _+ }6 ?1 B: [& a2 C
document.getelementbyid(seekable).innerhtml=str;
q6 X7 k c2 k L5 c}" l, Z f" F1 F' ~: I) T8 \
// played
9 i+ v# c, X3 q+ {/ _& q- c1 Efunction updateplayed(){1 I1 C1 a$ N2 e) G* {
var ranges=audio.played;
( {6 }% T7 d% E- b% {3 f. [/ @1 m/ mvar str=;
1 X7 l6 z3 e- L# }( L, v' Z" C9 J/ Cvar n=ranges.length;' Q7 h' [4 _* ~3 P' m$ v
for(var i=0;i<n;i++){
5 |+ w! C# }/ D/ astr+=(+ranges.start(i)+,+ranges.end(i)+);7 n* ?$ n8 E( F5 s4 A8 B. Z7 K
if(i!=n-1){
" W: I2 u4 M' c& dstr+=6 |) c$ k# X. G
;
1 v u+ \' {6 w1 ]}. {" P7 F: O3 b5 I3 @+ s: T
}
' D- V0 D4 _. |! i4 u$ T; ]document.getelementbyid(played).innerhtml=str;! p0 j$ J3 K; T6 \, l
}7 d) x9 ?% F! ?/ e& N, Y( P3 N
// error
5 r& z6 k. U0 H6 Tfunction updateerror(){
. b8 W5 v3 g/ |; a5 n" ]document.getelementbyid(error).innerhtml=audio.error;
& K3 y l+ D) S6 D+ n" k- J}
4 Q, P) v# P" A* ~1 o, N. E0 @7 n: P* a/ b
更多网页制作信息请查看: 网页制作 |
|