返回列表 发新帖

html5中 media(播放器)的api使用指南

632.1k 8
swmozowtfl 发表于 2015-7-26 20:46:11|湖北 | 查看全部 阅读模式
代码如下:0 Y3 D2 q, C, c. K# K
<!doctype html>8 w- `1 O! h/ P5 m5 ^- i7 P+ M
<html lang=en>
, z( g7 z. I1 u- y6 g% H<head>
* V/ l9 r  @( H# W; I3 k<meta charset=utf-8>6 C' b2 l+ H7 v! B7 d. ?( k
<title>html audio api</title>( I2 M( @! H4 ]9 P" M7 f( |+ R
<link rel=stylesheet href=./style/main.css />, a4 J; [. F/ Z
<script src=./script/audio-controls.js></script>
, x5 |- L$ z' }' {</head>. m* I' H& L$ v$ |  s$ U
<body>+ G' d+ S% p! p  o  O
<header>
9 [; Y0 d5 i- ?: N* E- O+ Y5 h<h1>html5 audio api</h1>& J* B# z8 ?- ]
<p>html5 audio api demo by <a href=<a href=> target=_blank>learnshare</a>.</p>9 `# F) P1 J0 P$ B6 k$ d; i7 c
<p>1 i7 u' |, ]7 t7 M) `
last update @2013-04-23 20:40:00
: O+ j. m2 I7 \$ |  \8 W1 C+ add info table
- B  F! O5 j/ E/ Lupdate @2013-04-22 14:54:007 ?0 l/ m  ?( i7 E
+ add dom events
+ {$ z9 z9 Y: |- {6 v* i" n+ R# mupdate @2013-04-22 12:47:00
+ e' C7 R5 c3 t( x9 s+ add getcurrentsrc button( t2 U6 k0 j9 e. s" B' ]8 d% z: U
</p>& M+ b- R- d# C2 h
<p>) a% T! f7 J7 X2 I  l4 U4 v7 y
view code on <a href=<a href=>
1 `0 a) O  G& l5 N4 o$ ^> target=_blank>learnshare.github.io</a>.
# f2 q6 Y2 E, k, U8 ^api reference: <a href=<a href=> target=_blank>htmlmediaelement</a> and <a href=<a href=> target=_blank>audio/video dom references</a>
9 n# v; g, |% g7 N3 _% U: f</p>) i/ }; Z# c+ L7 N2 Y& v
</header>
6 ?/ a8 W5 \9 b, Q9 m; b<article>; F' }; W+ ]6 T8 V
<section>
! [4 `  H0 [. t* ^<h2>audio element</h2>
; E! N6 @1 B4 h0 Z# ^<audio id=audio src=./media/music1.mp3 controls=controls></audio>
" y& g% a  l5 k( ~$ w" K<p>open the <strong>developer tool</strong> to view console logs.</p>6 V/ B! f% ]% ]7 P
</section>
3 w# L0 |6 [, B& a, i; x8 c6 K<section>
5 R, x' x0 f% [! [# @<h2>controls</h2>) i8 N- p% K9 G9 ?
<button id=play>play</button>
% j+ V% c; X1 x- A& _<button id=pause>pause</button>( \" f* f( p) a' F- g
<button id=get_paused>getpaused</button>2 Z2 q" j) x$ _8 u, a
<button id=get_ended>getended</button>
+ O9 g8 g$ F" K6 G9 @/ Z
1 v% K' M( @. d8 ?3 E& g8 x1 ~<button id=volume_down>volume-</button>
( Q8 \$ M# B3 |- k, g! e7 m4 G<button id=volume_up>volume+</button>
5 j' F( ~+ n+ e, ]<button id=get_volume>getvolume</button>
( W6 t* Z4 s9 H) ?/ _
! b2 a6 M, V3 h9 D<button id=get_src>getsrc</button>
) i" J- W  _7 |0 ^1 d7 I5 E0 _<button id=play_music1>playmusic1</button>
* c5 M; u% ~1 J" u( I0 F/ [<button id=play_music2>playmusic2</button>
: e. n5 v9 G: m2 y( f0 d8 r. Z$ j<button id=remove_music>removemusic</button>  b' J$ L9 B& Q2 r' \- ]& f
<button id=get_current_src>getcurrentsrc</button>
6 t# f) O, o6 J" ?  g# |
7 h5 V" H0 I  U  c# u<button id=get_initial_time>getinitialtime</button>% O, W9 L( u: F; K0 n
<button id=get_duration>getduration</button>0 \/ Y: i7 X8 q6 x/ g* e1 X
<button id=get_seeking>getseeking</button>9 U1 J. q+ E1 ^/ s  c! b
<button id=jump_to>jumpto_30s</button>  _/ l' b' V2 g& l, Q3 e
<button id=get_current_time>getcurrenttime</button>0 @" D$ V7 q! F$ z' {8 j. x2 i
<button id=get_played>getplayed</button>) M1 v1 V  R6 B( W/ J& z( _% v
8 }+ i  d; y  x5 o
<button id=autoplay_on>autoplay_on</button>
5 l* ^8 F+ U- ~# P2 m* a: \<button id=autoplay_off>autoplay_off</button>
6 g5 {9 U) ]8 W% e% f<button id=get_autoplay>getautoplay</button>/ Z. J2 D  l5 c; g
# n: ~6 h  V7 W
<button id=controls_show>controls_show</button>8 X; K2 K" I) G3 `
<button id=controls_hide>controls_hide</button># X+ F/ r, t" s) W
<button id=get_controls>getcontrols</button>3 Q0 f1 Q3 {, N

! E' W) P$ e( f0 |<button id=loop_on>loop_on</button>
- B) a  E) A6 Q8 S3 |<button id=loop_off>loop_off</button>$ l! X* b( @# C; S# O
<button id=get_loop>getloop</button>
. f) A  i! }/ M5 G5 j. T* y5 g. M" }$ p, o
<button id=preload_metadata>preload_metadata</button>
4 }# l9 e: O; G" a/ f8 N/ L" I; K<button id=get_preload>getpreload</button>
* X9 p& X2 g1 F& ]# o& _% v4 h! |* P6 Z( h. L+ H" W9 K; y0 j% S9 m3 }8 A
<button id=get_default_muted>getdefaultmuted</button>
. [/ r; r' t/ ]7 L3 x+ B<button id=mute>mute</button>
' e: Z  u& Q/ i6 C<button id=unmute>unmute</button>
! K; f+ [1 E, \+ P) I6 w6 B<button id=get_muted>getmuted</button>
2 n  M: s; B8 Y8 V7 D% w# r7 `' i3 v0 y. m. l, ?$ C
<button id=get_default_playback_rate>getdefaultplaybackrate</button>; H3 N. z  G: P) \2 m* Q3 E# A
<button id=playback_rate_down>playbackrate-</button>; q! r* W6 G$ ?
<button id=playback_rate_up>playbackrate+</button>) a7 V! Z. [( h6 H7 w* N8 ~
<button id=get_playback_rate>getplaybackrate</button>
& t7 `! v; z% F, ]2 d  l) }
) s- `  M+ B) e+ \, y4 d<button id=get_network_state>getnetworkstate</button>
5 L* Z6 T" Y, k0 j1 S<button id=get_ready_state>getreadystate</button>
$ ^( z/ V. D; h<button id=get_buffered>getbuffered</button>  ]2 e& P# O/ c) R: a) f
<button id=get_seekable>getseekable</button>
9 J$ O( z4 [  l1 l1 ]( {</section>8 v& o+ F% t. v8 M% h+ a
</article>: m5 M1 k3 k% N' T/ W
<aside>  X0 i/ D8 E( I0 K7 u
<section>, e; Y4 Q  o4 K* x$ s5 h' f  A
<h3>player attrs</h3>  `1 |: R7 _) @- G0 J
<table>1 D9 }* X# h5 H, B
<tr>
/ |% U6 j$ x+ E+ Y$ L<td>autoplay:</td>
" ^1 G" X! u0 ?8 Y<td id=autoplay></td>, g( p3 D  L: H  `; `
</tr>
( H6 w" |3 h# l  N<tr>
$ b6 b7 Q9 j& F$ @4 w' @<td>controls:</td>) ~! v# B) Q2 n. s9 R
<td id=controls></td>' A0 H3 u) N- ~* {1 f; L' H5 p' T# D
</tr>
4 z8 {9 j5 b7 k4 y# I3 m' S# j<tr>( k  z( a, \. }, k# g8 u8 `) b
<td>defaultmuted:</td>2 b7 H$ @$ v4 N8 D2 P2 d
<td id=default_muted></td>
, P) ]5 p2 M4 S$ L0 i</tr>
: F5 m8 i4 [9 T+ Q8 F1 J, k<tr>
+ ?1 }7 C6 W$ _, k& u' l<td>defaultplaybackrate:</td># F9 X. P$ S5 z, ?9 H( B4 f2 T$ Z% F& ^: J
<td id=default_playback_rate></td>
* t* ]6 C. ~' k6 i</tr>  i# \. F3 Q$ }: z" }
<tr>* I7 ^' r8 a. }" u
<td>loop:</td>
- w3 x' ^0 i' g. \; ^- k<td id=loop></td>+ }1 P- ]3 h, m" P. M& }  m- ~# r
</tr>3 b6 M* I2 d' V8 e8 g8 r
<tr>
: A6 w. B5 J8 c& q, Z1 |<td>preload:</td>8 H+ u* c$ I) M! z9 b. ~
<td id=preload></td>
9 N/ |7 _. a3 i# [6 k</tr>
5 E. g% L) s! g5 i9 N8 g9 ?% Y</table>, V9 E$ \9 Q2 f, i
</section>
0 n0 d7 V! d" ]  M% e6 y# V- M<section>
: O! @' ?7 |" T  R<h3>player info</h3>3 N9 K5 r! T2 C# ^% v3 b
<table>
; H: e, \, \2 |8 \+ I# V' B# J5 j<tr>5 O) n7 N0 B& W- t9 F
<td>src:</td>
. T2 |- s$ I' u<td id=src></td>0 R. z+ Z2 |9 I8 y
</tr>1 ~9 k( G+ F& u* h/ f& h% Q
<tr>
, u- T. P, f/ n! _- }, O+ e- R<td>currentsrc:</td>
* z: Q" o$ v" e1 G4 h9 \<td id=current_src></td>! f& {3 }( Y% ?& [' r$ {) V8 u2 V
</tr>
5 J9 F4 t6 X) F( f/ r4 {<tr>
, G: a$ l# c9 L- a3 v<td>duration:</td>
0 ~) h. @+ K. ]  ]  O<td id=duration></td>2 A6 M3 b% o- i: c8 F1 h
</tr>
/ b; q* f$ u, ~4 R7 N( L$ o- K! Q<tr>
) T0 P8 X+ ~0 ^( B0 [  }3 f8 h<td>currenttime:</td>, ]9 F+ r" h- J* H) |
<td id=current_time></td>3 D5 W) v& }7 Y1 s6 z# O
</tr>$ c3 b) H. j' S
<tr>
! G7 [( _6 F! B! h7 `. L! o# R<td>ended:</td>5 Z( M  K5 y- m( d" Y& L, Y) S
<td id=ended></td>
# v/ g4 h! W9 [6 Y% `. H</tr>
; z9 p* z8 r9 ?/ |<tr>
6 S- L: F) b$ C1 c; [2 G<td>paused:</td>
& @7 u/ o( U$ h2 K/ u, G; [<td id=paused></td>& \% q- w! a  u' M
</tr>
* I: _# q9 V7 ^9 P<tr>9 w; K9 D$ D( a5 X/ l0 p( U7 h
<td>muted:</td>* }3 }5 a9 Y; o. p
<td id=muted></td>
- X4 y5 f0 Y, `8 @4 l8 L</tr>. X4 y1 M7 Q* K* }: A8 G* B
<tr>2 x. b$ o6 Z3 B7 E
<td>volume:</td>
# o3 y3 y  w" {/ O' L. A<td id=volume></td>
' a" G( ]$ ~7 l7 V</tr>
. s9 C1 C  D* N0 J, V! [<tr>
7 u& f( S3 J. b0 X6 e<td>playbackrate:</td>! Y5 B9 y. A; g1 Z1 `9 F
<td id=playback_rate></td>: @: B3 [0 Z5 A. T& i- r2 e& `% F
</tr>
8 E7 M4 j+ |0 p</table>
) m: `; q6 y( _6 m</section>/ G/ }- _/ j. S: l# j0 U
<section>  R/ {8 [1 k4 m6 l; ]( @$ n/ j
<h3>play status</h3>
! b  `4 \/ ?4 ~! P3 t<table>2 e5 Y% \( ~  D5 G- U9 l8 x
<tr>0 a/ I( s4 h& j# ~$ T+ T
<td>networkstate:</td>* D; f. N& V5 n
<td id=network_state></td>
0 I7 b, k! C; P, L' @- y  q</tr>
: l# g/ U* O2 [2 E* G<tr>( {" \9 {; r0 t5 n4 @& o
<td>readystate:</td>" a& |8 B$ i  G) Y( \3 L! Q. W% m
<td id=ready_state></td>; H* s: m, F; a+ J4 F, u: b
</tr>
* }. P; _2 B/ F$ o<tr>
0 U6 o1 \% a8 S: t<td>buffered:</td>" L  o) y) B( b" W$ ]
<td id=buffered></td>
- G/ V) q% s* r7 `; I</tr>
) V! p$ C9 D. z- h( J<tr>
1 v0 _# u3 T/ _; L& i7 f/ h<td>seekable:</td>
) c- |2 z, i3 T6 L" D0 x<td id=seekable></td>
6 C* k' L- s6 k9 i</tr>
4 \, t- Z( d( O  w: T- |( C' ^<tr>1 ~$ U, v# q. r
<td>played:</td>
9 ?4 b8 O" T6 ~# Q: }0 {; Q1 v. y<td id=played></td>
0 c/ K, ]' U# ]</tr>) o2 Y- V7 j* h' \. u) N
<tr>7 B/ {7 l% O. I: o+ N2 y
<td>error:</td>
: ]4 s# X+ c1 @4 ^<td id=error></td>/ V% r: L" @1 X/ k! Y/ l: l
</tr>& x$ I8 q0 U; E! b
</table>
- Y" ?  X; Y1 V5 A& g6 v</section>
5 n$ v7 O$ i* N3 a' c, C" i/ A</aside>
3 E  ?( @, D6 B& u</body>
- _6 u" U+ j4 R% K: T3 B/ w</html>0 k- e/ O' \! P, i, m

5 g' L; Q/ k( g% K" k! saudio-controls.js
) m" W  D- g3 v. h4 N" [* `+ T9 T
$ k7 f+ K( I' Y( X% H: P2 J- c代码如下:3 q/ O  I' |0 h) h: B# w
window.onload=function(){
; J# j% Z) b8 d0 z# W4 \1 x& p// get autio element2 t# }# {6 B3 k. Y, ?
var audio=document.getelementbyid(audio);" }1 A' Q* }6 U- o" S% f4 _. ?
// play()
. Q, |6 G5 }! X) |document.getelementbyid(play).onclick=function(){4 |+ k* R8 T' \& W2 P' r
audio.play();
% [/ ?3 u0 Z. ]( O8 vconsole.log(play);
: O7 P: U/ `' i% @. D};# Q8 ]5 v; f& T9 a" _& [
// pause()  J" ~3 }) y5 |' z0 H# d) c6 e
document.getelementbyid(pause).onclick=function(){
1 e3 s+ x7 A2 J" H. _audio.pause();
& g; N& O2 T# ]' ^: j/ s. p( O8 Q+ mconsole.log(pause);
4 l6 }5 N* m! Y$ S) S+ N0 L};, _. n, q8 {+ ]
// get paused% q% u0 x1 Y1 N
document.getelementbyid(get_paused).onclick=function(){
2 X1 ]4 n* s8 e2 Iconsole.log(audio.paused: +audio.paused);
! L. u; M, D) S( c0 g% }. @};
* [: d+ L! a- ]0 ^// get ended1 }% }+ q' U) [) ]
document.getelementbyid(get_ended).onclick=function(){
( S* V9 C: @, X) V( jconsole.log(audio.ended: +audio.ended);& T2 ?' x, o6 m/ u# M
};( k' i9 L2 e5 c1 m6 V
// set volume-$ ?) S( A, P) P  o
document.getelementbyid(volume_down).onclick=function(){/ M% F" t; o* t: \( U) }% [
audio.volume-=0.2;
# B5 G& w, n% K# N4 E$ hconsole.log(volume-0.2);  K: X4 L4 B$ ^, a7 J8 C
};
/ |; f; u: \7 p0 w// set volume+
/ v( F: n: b5 A; ?3 Hdocument.getelementbyid(volume_up).onclick=function(){
! z, S( ?! |# P- F$ jaudio.volume+=0.2;1 H; J5 Q1 ^) D" p% }3 z
console.log(volume+0.2);+ v/ `+ L$ E+ O
};
5 w* D% ]% w% u2 F) n4 T// get volume
: l9 O8 {# h2 L& Mdocument.getelementbyid(get_volume).onclick=function(){* f) j7 |: D; w: v; c6 F$ ^. h1 i
console.log(audio.volume: +audio.volume);6 W1 q' d% v; r# M4 c/ G
};% R# ]2 m' {' `8 G# L" \+ q& V
// get src
) _9 C# z4 u) s) ], e9 fdocument.getelementbyid(get_src).onclick=function(){4 x& T, v; Q: g) G
console.log(audio.src: +audio.src);  i5 \- N/ {. s6 E! ~! T* l
};
% I) @' }* p1 x; m+ U// set src_music1- H2 f0 c- p7 c" Y) B5 j! _2 }  J
document.getelementbyid(play_music1).onclick=function(){
; P3 u3 W: r" i5 H8 R1 taudio.src=./media/music1.mp3;
# z1 D( \1 T3 C: a: `updatesrc();
" P( W# B- w7 X0 b/ ?updatecurrentsrc();
# O3 \' _. Q3 D1 j8 c/ ]7 Jconsole.log(play music1);. }  V5 L& [7 `5 V
};6 S, ]$ p* q& I4 X$ `+ U' `
// set src_music2
" f" p7 X/ X) Y2 [& r# i0 pdocument.getelementbyid(play_music2).onclick=function(){
. N2 K5 r1 Y6 ?; C6 i- @: Iaudio.src=./media/music2.mp3;& w4 n" `+ F- [) u
updatesrc();
8 M8 D2 ~& q" \( W. zupdatecurrentsrc();
! Y3 O& m* b# T1 D5 i& z$ Sconsole.log(play music2);3 |( ]& d5 t" u& \! P* ]/ T* y( i7 q
};$ B) R9 M3 L2 ]. g0 q6 B4 X/ X) @
// set remove_music
9 Q. ?- W: B" y8 o0 i# C9 {document.getelementbyid(remove_music).onclick=function(){
3 O: C: B% d7 r7 E3 kaudio.src=;
' o9 b, g. B5 Iconsole.log(remove music);0 W1 p7 E" Q: ?
};( l  |: e+ @. e6 B! T
// get currentsrc
* a% Z" V* x4 F5 r! Jdocument.getelementbyid(get_current_src).onclick=function(){* c( r9 `, X8 [3 c8 h  v  p: G
console.log(audio.currentsrc: +audio.currentsrc);, {" i9 \5 t, Q+ w
};
, Z: M* j4 t/ h# t/ C$ U$ G9 ~// get initialtime
; r& {& c3 }/ _. Jdocument.getelementbyid(get_initial_time).onclick=function(){
; [8 k+ ~- z1 u% p; i" v/ V9 Dconsole.log(audio.initialtime: +audio.initialtime);
$ M5 B1 f3 @7 J6 _3 ?};6 m8 U; N: Q$ T: i0 s, x! Z
// get duration
. B% q" C) j# U$ q$ Q; Hdocument.getelementbyid(get_duration).onclick=function(){4 g9 `, a  u6 [
console.log(audio.duration: +audio.duration);
! [0 a3 c- |- m: ^. T3 G& m+ d};$ u: s7 H: m  n$ G+ z: [
// get seeking0 {" d% T0 ?8 ]: U& A! @- J6 j
document.getelementbyid(get_seeking).onclick=function(){
* V8 x( ]( b" @' P3 a0 X8 Dconsole.log(audio.seeking: +audio.seeking);
0 ]7 L) e+ P! c3 n! }$ E. U};
  p3 y% F' `/ D! |7 h  s- \// set currenttime
0 K; `% j: l* n$ W" _! idocument.getelementbyid(jump_to).onclick=function(){
0 G$ |; X7 Z* D0 I9 t8 Paudio.currenttime=30;
; [6 _+ x' ?# Z% d1 Sconsole.log(jumpto 30s);
- M  S% c0 B5 F1 C& R! ~};
. Q6 |' f8 ]9 f+ H6 l* F# r// get currenttime
4 [; a& B  n: x( v7 odocument.getelementbyid(get_current_time).onclick=function(){
% F% Z& j2 F9 P& G9 W0 p4 oconsole.log(audio.currenttime: +audio.currenttime);* z3 u) j( Q8 c! d% x1 @& o, R. U
};. [& U; |, \4 {6 c& r; g. m7 N% ~
// get played
0 t7 f0 M! a$ k& ]& z$ W. vdocument.getelementbyid(get_played).onclick=function(){( T8 l! f# ~) r4 o9 Q
console.log(audio.played:);
% X6 L* C5 F6 j9 Qvar ranges=audio.played;/ P: i  o3 n6 z( }7 k* o- p
var n=ranges.length;
5 g/ W0 B) _8 p' K5 ?for(var i=0;i<n;i++){. d( X5 B( T9 t( [" \" ?. w2 ?
console.log((+ranges.start(i)+,+ranges.end(i)+));8 T  J6 J! k% O+ W8 c
}
7 ~$ }+ \# I5 D" z: ?( Y};
4 k( [* [6 i* d( V9 f  m$ `// autoplay on' s. g/ q) n  K% |3 K( @( v
document.getelementbyid(autoplay_on).onclick=function(){. y  |* R& m( h; J2 Q- Q
audio.autoplay=true;; G# \/ z1 y2 p, ?! F5 P
updateautoplay();
' B" z4 V; g6 y9 `console.log(autoplay on);
$ u6 E& E3 k9 ?* d5 T( C1 t$ x& `};0 F& O+ r1 ^+ x; _/ ?$ m& g
// autoplay off5 a6 j3 ]6 E4 P* e, E$ f- K
document.getelementbyid(autoplay_off).onclick=function(){
# P. Y! v4 j* A. Maudio.autoplay=false;
9 R7 T* ]$ R; V: Pupdateautoplay();
& L# _1 l3 w' g- Q6 X# L( c6 V* @( yconsole.log(autoplay off);& {& P3 D) _9 r
};) m$ c  o* t8 k/ S1 i" Q9 ?
// get autoplay. {0 t8 t+ Q$ l: g7 @$ A+ F5 W8 \
document.getelementbyid(get_autoplay).onclick=function(){9 V1 Q1 |9 ]9 m- O; C* }5 n
console.log(audio.autoplay: +audio.autoplay);  z$ K# b) J. z. V( N
};5 x& H" w  O' L7 S! p+ y7 Y
// controls show6 F6 X9 Z& G1 M  M: l5 ~
document.getelementbyid(controls_show).onclick=function(){$ o4 x5 d6 o, g, s/ C! ?
audio.controls=true;6 r: r& n% v: v) G6 ]
updatecontrols();, [# ]* F' u3 s
console.log(controls show);5 X3 r: g4 _3 {: v% g( B7 F
};
1 R, V9 W2 C0 z// controls hide# ?% U4 U* Y0 Z3 c! c6 n* I
document.getelementbyid(controls_hide).onclick=function(){
* S1 _$ R; g- r  L5 E% R9 Uaudio.controls=false;
5 P7 b" T) f7 Kupdatecontrols();
8 j9 k+ r/ w+ }0 Z5 q$ F' e5 hconsole.log(controls hide);/ {0 B0 a- W+ Q
};5 g1 p4 S4 y$ [* ^( R. p: h* ]
// get controls$ Y5 M  d& k( r. i  ?) v
document.getelementbyid(get_controls).onclick=function(){$ |& {- c: I' ^& T/ U7 B
console.log(audio.controls: +audio.controls);* y% J% p6 |1 C! e; @
};
' D$ K- _" J! R+ P// loop on/ ^4 I" c2 F: {' P2 O) U
document.getelementbyid(loop_on).onclick=function(){' U; \8 W, W- f/ t5 C- f) i
audio.loop=true;
: @) w; p3 {( B6 [updateloop();
, r* \3 F9 L; Z- _console.log(loop on);, N  D2 X, ^" E* Z, T" E) X3 P! W0 A" D
};- R9 C1 g3 Z4 |
// loop off! R3 W& {# W$ H
document.getelementbyid(loop_off).onclick=function(){
* S1 _5 B! Z5 y' _audio.loop=false;) h; g5 s6 `; m2 o7 a
updateloop();+ W" \) }+ \( ^* g# v* ?0 a% L* c- [
console.log(loop off);
/ p6 i' {1 o% n6 N};
  }! Q# v6 x/ {# G2 M, i// get loop
4 S1 y" D& v  l" ^0 ]document.getelementbyid(get_loop).onclick=function(){
; N# b# R8 o* w' K# uconsole.log(audio.loop: +audio.loop);$ N0 n6 A2 z5 H8 `
};
5 i* W& n8 u& Y// preload metadata
' t1 Z; C* U7 ^* y+ D; Fdocument.getelementbyid(preload_metadata).onclick=function(){+ C! I4 Q) W4 {' S/ O4 v6 b+ Q8 w
audio.preload=metadata;
. \; X: t, x% m' \. O: Z: K) lupdatepreload();! y, z$ L& a1 b( ~& g* V
console.log(preload metadata);
' Z# K" j# T8 I% P5 G};
$ v) C$ W/ h2 w6 x0 R// get preload$ Z* H; P5 _' W" I( o; e) U- ^
document.getelementbyid(get_preload).onclick=function(){% ]! O: r1 u1 {- s' b6 f( a
console.log(audio.preload: +audio.preload);
* i. N  J/ m% H/ Y; I};+ K+ n2 Y5 i2 U' N$ k
// get defaultmuted
) e: a3 X: c) Y% m2 p7 y; cdocument.getelementbyid(get_default_muted).onclick=function(){/ L6 F$ u) C( Y4 j: _2 H' P
console.log(audio.defaultmuted: +audio.defaultmuted);5 p$ t; K2 a6 j1 O. N5 w( H
};- o+ F% e; K) ^2 W! M- c
// mute/ Y- a9 A$ J0 w! w0 u) W
document.getelementbyid(mute).onclick=function(){
6 Z4 B8 V4 x7 H- Eaudio.muted=true;7 ?# _+ H1 ^$ k; D- C' z+ U7 p
updatemuted();, t  D8 r  w. a7 D
console.log(audio mute);0 O' r# a/ m! R
};8 x! v. R" d/ w* H) T' w- S
// unmute
6 X4 g' m1 m3 v3 zdocument.getelementbyid(unmute).onclick=function(){7 R6 ]3 o$ H' T* O2 V4 N  t* G# O7 q
audio.muted=false;
6 X: f* v1 j1 k, w& _updatemuted();# w. i& ]3 g: Y* M
console.log(audio unmute);
) ~; _* ]+ S9 I) F};
3 ~" W: \- Y5 g+ B/ K( p3 d// get muted1 _. ~4 o9 D+ Z0 R# O+ w
document.getelementbyid(get_muted).onclick=function(){, [; w0 U* _& U; ]; q3 l0 m9 D
console.log(audio.muted: +audio.muted);0 Q) o: A! Z& d0 _0 _" a5 d
};
! k. H  J! c6 x9 b6 N4 A// get defaultplaybackrate! s- |; w9 P, T( o# w
document.getelementbyid(get_default_playback_rate).onclick=function(){0 t5 D, g4 @9 E3 t6 S$ c, {
console.log(audio.defaultplaybackrate: +audio.defaultplaybackrate);2 _8 L0 I2 U5 n$ N  i% x
};
9 ?. z7 Z/ U  K2 t2 t- h; ^( R// set playbackrate-
3 J2 t3 i4 ^9 l" K2 ]  Idocument.getelementbyid(playback_rate_down).onclick=function(){, n1 e6 \) }# u4 K& e$ @! z
audio.playbackrate-=0.2;
  Q# {8 F* f' H& ]console.log(playbackrate-0.2);2 a/ _2 G; e/ Y* t
};
8 R: x6 R% Y; b/ X// set playbackrate+
* p" Z2 S2 U$ {* g2 M3 m: x# l* ddocument.getelementbyid(playback_rate_up).onclick=function(){
  o8 v0 K0 o$ T+ c) Z, f! ^' qaudio.playbackrate+=0.2;; `: q( R; u0 H! m+ t0 O$ q
console.log(playbackrate+0.2);
/ ]3 [* Y, E7 b5 U1 H};- w. ^+ p4 V+ E  K8 U
// get playbackrate) B8 g! B! `9 l. L
document.getelementbyid(get_playback_rate).onclick=function(){
+ Y( _$ b) _( Q+ o* ^8 Z( dconsole.log(audio.playbackrate: +audio.playbackrate);  S6 s" Z6 m2 i' `! n
};3 q* `. K6 }' x8 Z5 E. z: H
// get networkstate2 b# J; w/ ^! m2 J+ `. s& z4 h
document.getelementbyid(get_network_state).onclick=function(){
5 F' }. e# @% c- sconsole.log(audio.networkstate: +audio.networkstate);8 r8 y1 O" e) D& e
};6 P. {' k) @" l& G7 |' l
// get readystate
8 b0 ]; X1 Y/ n; }. Ndocument.getelementbyid(get_ready_state).onclick=function(){
1 c* ^8 x+ K, e4 y& W; Tconsole.log(audio.readystate: +audio.readystate);- }+ O/ U8 ?- I; t: z: w
};* k" h8 v! x& M! P/ J
// get buffered6 E* E& u  O7 p. y5 J3 _
document.getelementbyid(get_buffered).onclick=function(){
9 a( I0 F8 l7 g7 u' A: R4 sconsole.log(audio.buffered:);1 I$ d5 S0 X/ j0 W4 f
var ranges=audio.buffered;5 j8 O0 `9 n" _+ ^/ R' s, A9 W" ?
var n=ranges.length;1 t) L7 n% I. b6 H+ G0 v3 I# \' D4 ^
for(var i=0;i<n;i++){
+ m5 Z1 I5 d1 g; q' x$ H/ G) hconsole.log((+ranges.start(i)+,+ranges.end(i)+));0 B& N. x$ F% E/ w+ M: o! h1 D
}2 q! M# f2 {, F" h# H
};& {0 l2 h) e* x3 |
// get seekable
; J# v4 I0 ~& R( S3 Y& sdocument.getelementbyid(get_seekable).onclick=function(){' o0 l, _. c  Z1 I/ [
console.log(audio.seekable:);4 D* X5 z9 M! s
var ranges=audio.seekable;
/ w9 t3 ^1 h: y+ x% q( tvar n=ranges.length;
/ ?2 K% D6 Y4 E5 f. u  pfor(var i=0;i<n;i++){
: i) M2 a: Z4 }0 {console.log((+ranges.start(i)+,+ranges.end(i)+));5 S$ W: Z+ m* p! ]
}. K$ t( _: [5 G) [; j+ K
};  R; {  c  ~+ I% l4 C; m
// dom events" a( C) T! d6 U0 M8 D3 e1 H: N, c! [9 L6 q
// abort, E- l; z3 V* Y6 M9 A/ O6 t5 y+ j
audio.addeventlistener(abort,function(){
; ~; _5 N$ Z% ]+ O+ P0 Z0 Jconsole.log(event:abort);0 w3 k" r: c4 m& l; t* c
});
& g; M1 }* w5 N3 f% w// canplay# K" B) W/ Z6 ]+ f( w9 n% N
audio.addeventlistener(canplay,function(){8 Q1 Q- s; P+ O9 j" p
console.log(event:canplay);
$ S5 s7 \4 M. o3 s6 t* _});. N) v/ b3 v7 j5 u8 s
// canplaythrough! z. p, Z& e( D. b8 h" o$ z
audio.addeventlistener(canplaythrough,function(){
5 H9 N) ^; c$ I% z6 Tconsole.log(event:canplaythrough);
4 E+ S4 r  p, B});
( i$ m' h5 Q7 z: l! L- A& n// durationchange5 i3 a5 x- B* f# r
audio.addeventlistener(durationchange,function(){$ U! k5 Y* N# d* A; J9 W% Y0 |& i
updateduration();$ `+ G- q* z/ y+ c' g
console.log(event:durationchange);
! \3 a6 s; w( t});$ |0 Y  e; K. s( [
// emptied8 C  C% N' c2 I$ U
audio.addeventlistener(emptied,function(){/ _  i6 _1 {" F
updatesrc();7 M! D  \8 B, @4 d# |- i5 ^
updatecurrentsrc();
7 i9 a  r/ j" Bupdateduration();
' @$ s& k7 S9 C  F3 jupdatepaused();
5 q1 N/ M% h" H9 ~$ r  jupdatenetworkstate();9 S% ^+ n* A' L9 Q% w
updatereadystate();
% n) `% \  d7 `( O3 f4 `. |8 uupdatebuffered();' B% |  w; F7 R7 f: L: Y: D+ `( s
updateseekable();! B* w( z: B/ G7 h% A# c
updateplayed();* e- t8 p. @% j# f. ?0 ?
console.log(event:emptied);
1 g% y# q6 }" V) A2 f8 F});
/ c9 X4 T1 y- g0 ?$ H! |// ended
: V& W, I" C! O' s; K$ A1 H8 kaudio.addeventlistener(ended,function(){! b" i6 j8 M. ?4 h# C' R% b6 O) b
updateended();2 J/ _* u& A1 c/ l2 U
console.log(event:ended);
) N8 N! }5 {' |! t; a; i});
8 T- T* R( A  z. G// loadeddata
" K7 X* x! h4 k/ t+ `audio.addeventlistener(loadeddata,function(){; r6 C8 X8 ]6 |+ A2 t; ?
updatenetworkstate();0 S( L& K* v" X" Z- A! B: ]8 D2 {
updatereadystate();7 m4 L( ~6 l7 ~
updatebuffered();
' N) f( Y. s  L+ cupdateseekable();7 |( A! A8 z: C; U9 k# _
console.log(event:loadeddata);1 z7 y4 H/ n: Q' d$ e
});/ E6 c5 c  S/ S3 d" d
// loadedmetadata9 n! f, w/ Q0 R
audio.addeventlistener(loadedmetadata,function(){
# U2 h2 U; S( B8 P# S. M6 Qconsole.log(event:loadedmetadata);% h/ ~& y: a+ o5 j
});6 \; Y  l) O% w7 b3 Z0 v
// loadstart
5 [1 \* Q5 x: Z5 daudio.addeventlistener(loadstart,function(){
, {$ z& J% {- L8 P5 D/ O% k" {console.log(event:loadstart);' H. K6 H# K- L4 m7 Y$ M% D
});) ^7 q7 ^1 ?( t0 M
// pause
& @- u$ S# ^  f( f+ Jaudio.addeventlistener(pause,function(){
) l$ s; ^* @+ M9 {: o, ^" `8 d  Eupdatepaused();
# S% t( `+ ~$ X; z  k9 Vconsole.log(event:pause);
5 t- L( p+ P5 m});* `- H3 M! g8 E0 [  T, D
// play
2 m& h& @' w( y3 I) a2 B8 raudio.addeventlistener(play,function(){' o' D: U1 e1 t0 T
updatepaused();; u& d7 U) `6 F
console.log(event:play);$ d  c- o1 f, t3 B1 I' Y& d
});
  R4 {! ~- Y9 S+ T3 w// playing. O1 q8 y* l. K. h6 |+ t
audio.addeventlistener(playing,function(){( e7 v0 r3 V. s1 s7 g! ~- P% B
console.log(event:playing);1 o" X1 S8 _; y4 }) U
});
5 o) R; {) {2 X: `1 H// progress' e0 a2 \5 H& @$ o! k! f6 f
audio.addeventlistener(progress,function(){
9 s: S' G. t' Q' G% ?9 xupdatenetworkstate();9 F% t. H# i# q& p8 I' g! d& h5 |
updatereadystate();
5 f6 u  P. A5 E5 ^' X1 \. }# G2 \updatebuffered();
; R) \2 x4 E1 B0 Y3 E, W0 K/ wupdateseekable();
  i4 h! L/ M. a$ U) C6 R" kconsole.log(event:progress);
- \& `" U* |' H8 }7 u});7 _# \( S3 l( I+ |" u5 I% u( {
// ratechange
- R1 C" B% _3 S0 X3 o% Iaudio.addeventlistener(ratechange,function(){
3 S1 J: [# s( I7 mupdateplaybackrate();) w; a6 P3 v( j3 h) ]5 X8 X& Q" z8 t
console.log(event:ratechange);
5 o# f8 R& |0 v1 O});4 V/ y6 e/ E" Y1 D
// seeked
" v, l. L6 A, Taudio.addeventlistener(seeked,function(){% A( J: a' w6 I% n2 D6 ^* ]
console.log(event:seeked);9 ~4 [  Q& ]! V, I+ r( Y. \) e
});' y* d% ~. B8 a1 \/ N! a
// seeking
# ?. C: Z8 i" D! k$ W# z9 S3 ?; n& y$ kaudio.addeventlistener(seeking,function(){
2 D6 h7 s; t  dconsole.log(event:seeking);; R9 _! x# K) Y* r( y
});
  w: ?5 @- Z$ n7 B9 ^8 a  `1 A// stalled
0 z! @" }2 Z4 F% s5 p: _audio.addeventlistener(stalled,function(){+ H, o- _2 J" r5 t0 J% x
console.log(event:stalled);
0 @9 ~+ E/ ^* G- M. k$ `% i9 n8 |5 Y: f});
% s* V& u* A5 K! G: W2 N0 V// suspend9 q! W  j# U  ?6 U1 T
audio.addeventlistener(suspend,function(){1 ?+ j1 y: i6 o# b( n
console.log(event:suspend);
9 I+ r, Y: v# {. `4 o& z0 @+ I});& H$ j: M7 ?3 d
// timeupdate: E: O8 |9 e4 U* n  |
audio.addeventlistener(timeupdate,function(){0 L3 N; i5 N# ?4 T
updatecurrenttime();
( O  _; W( f7 X2 m: c) _% fupdateended();
* T6 P4 e% y- J# `) b. H/ ~updateplayed();
% s" d- q% i6 _+ L, gconsole.log(event:timeupdate);
7 n+ H" K) |% e9 W( ~7 ?});0 K" m9 @! w" e/ c. z' g
// volumechange
8 j& o& J$ _3 L- F3 qaudio.addeventlistener(volumechange,function(){
) n, {. b- |& A6 b$ |, Xupdatevolume();
& \0 \7 V! ?' A7 ]7 H& sconsole.log(event:volumechange);
. k* Q' @3 j, n) V3 i" e* I});. V/ [0 ^  s; i9 ^4 c  x4 M& J
// waiting# `1 ]$ @0 \. J( I
audio.addeventlistener(waiting,function(){
" ]  ?9 A, `8 l1 |1 y9 _# y" zconsole.log(event:waiting);
& M$ C6 o. U' X/ c7 I5 [8 e$ u});
5 u) x' |1 j& K0 ]0 G2 pupdateautoplay();
: u# D; X6 I' k4 G- ^) a, @+ R/ Jupdatecontrols();
' b; n! k: ~1 W% aupdatedefaultmuted();
4 p0 V1 t4 x0 P( ^; |- T9 Iupdatedefaultplaybackrate();
% _6 b  e, ~/ s' W5 Qupdateloop();) r1 H/ U9 X$ N% ]4 u
updatepreload();5 M$ _" F' B9 R3 t( l
updatesrc();
' m& h0 c2 J9 A1 v4 N( h: S* vupdatecurrentsrc();
. J+ k3 S7 _6 m5 W" P% supdateduration();1 }6 u+ n" o& i# U7 P  o( n
updatecurrenttime();
& B! V  U6 u7 E. {4 k1 j" ?updatevolume();
* r* ^" i& H% Y0 S0 k/ Yupdatepaused();6 k% b- ]0 _% t) K- X
updatemuted();
" [% l# m: p0 o+ N9 }6 n% ]updateended();+ S" a" J' S# S, r
updateplaybackrate();! H" a8 {3 u7 J: J4 Y: i0 I1 A
updatenetworkstate();
/ `5 J8 d8 o) t+ Fupdatereadystate();# D; m7 G" M3 p# c7 P! x6 L8 V8 x( \
updatebuffered();
0 H. _" G1 l1 \* Z3 @. dupdateseekable();  A* D& w/ S( e. o( }7 N
updateplayed();2 w/ e* g8 K3 ~
updateerror();- m8 r8 V  a2 e" b( ~0 d! i
};% b# G. o! @9 L1 w) j
// functions to update info table
0 V# {- n/ [% @! h* y  L! P. i// autoplay
0 E; P. s% V# U* K. s" h) J. h2 efunction updateautoplay(){5 c! N3 u. V* M
document.getelementbyid(autoplay).innerhtml=audio.autoplay;
  l! \. i/ ^* b- g$ f, p}
. ?" Z% Z) S. q+ B7 K// controls  H' l- H2 i; x
function updatecontrols(){; q1 J& j0 x3 ^- B# H' \; {
document.getelementbyid(controls).innerhtml=audio.controls;
1 d1 w, B8 g* F, ?}
  E; }. d/ F1 D2 o* _2 Y% m// defaultmuted
$ R6 a! U4 H7 H6 Bfunction updatedefaultmuted(){
7 A% S# n' k+ f" @' K# adocument.getelementbyid(default_muted).innerhtml=audio.defaultmuted;
: o; W) }/ _7 t* Y$ s}
2 Z7 s+ s4 u5 M9 L) k// defaultplaybackrate2 h- u  P* Z: v3 o) {
function updatedefaultplaybackrate(){9 b. U, F: |& u/ b3 y( U; q5 g( f
document.getelementbyid(default_playback_rate).innerhtml=audio.defaultplaybackrate;
6 ]( c7 v& `4 i: V+ ]( f: U2 B}0 z$ H# J) n) q; I! T- D0 w, `
// loop
: h* P; V: [( s8 v. mfunction updateloop(){
, B& z( s5 l' m- n( g0 ddocument.getelementbyid(loop).innerhtml=audio.loop;3 |) u" U5 ]& x
}
* |# i! p4 B* \- ]! f2 d8 B, \// preload  c8 C+ K- T6 R  v) L2 K* n
function updatepreload(){
& c( b; ]4 w" ~8 ]7 \2 m7 G7 jdocument.getelementbyid(preload).innerhtml=audio.preload;: r, K( B0 S* D+ K, k
}$ W/ P1 l4 r; g& I4 J
// src
0 R' [: ~9 o/ E8 x% Kfunction updatesrc(){4 Y& S# f" Q2 Y+ h8 [) x3 Y; a
document.getelementbyid(src).innerhtml=audio.src;+ m5 H# R& u# b+ q% P4 v0 S
}
7 z6 }" q+ |8 U  s' `5 a/ N; S// currentsrc, h3 o- D4 c$ T2 i+ H* E
function updatecurrentsrc(){
( d; _  _+ i0 i; F1 u$ Tdocument.getelementbyid(current_src).innerhtml=audio.currentsrc;
& k: M1 B+ [& C- c}  F$ c3 u( S# x& Q# u3 d7 m
// duration  W: L  s- q9 R; C8 d6 P
function updateduration(){5 N2 Z  m* \+ D, }9 H
document.getelementbyid(duration).innerhtml=audio.duration;
5 U4 C; y0 A0 k  e5 [}0 ^( G- a+ b' ^7 {: f
// currenttime. F0 _3 |; E9 w- G2 ~
function updatecurrenttime(){
  m5 p6 ]( Y. f$ t3 Gdocument.getelementbyid(current_time).innerhtml=audio.currenttime;
: i* r  j% A, o( F3 x4 K}
3 i3 O& U/ R" z; t% G* o( I// ended8 A4 h6 x4 _' ?+ ~/ X  X; j+ q9 {0 v
function updateended(){
/ N# g4 V" {$ y& y/ Bdocument.getelementbyid(ended).innerhtml=audio.ended;2 B/ f+ n+ o/ [" o) e7 ^
}
: A: G( ]; Q% R) m3 U3 p6 n& z// paused' M1 {" J. ?; R" g1 e7 K
function updatepaused(){
2 M5 K  B; a# W, m& ?+ M0 Udocument.getelementbyid(paused).innerhtml=audio.paused;& j( p5 R( D( a% R1 v7 }% V+ ^
}, E, G9 t! p6 F( g
// muted5 Z0 ^" F! u# k* G5 T, K8 H
function updatemuted(){+ P8 b8 x6 O- i* \4 m8 n+ ]
document.getelementbyid(muted).innerhtml=audio.muted;
; S8 a5 L' v. t, w4 [}
1 Y3 q7 Y+ a; y$ |6 |/ ?// volume
$ k) U* _  w8 P3 A# ?function updatevolume(){
$ E2 r& }3 `1 n" Zdocument.getelementbyid(volume).innerhtml=audio.volume;4 _, K" V! Q9 v( F3 e
}; ~7 u. s( V6 d: z
// playbackrate! X7 ]/ W4 ?2 x! C
function updateplaybackrate(){% A5 W0 k2 m. k
document.getelementbyid(playback_rate).innerhtml=audio.playbackrate;1 P% A& K1 _5 ?- \) q" T# ]  O. A
}
9 M4 S: i$ ]2 H! |4 u// networkstate( U3 l. {; R7 q) C; S
function updatenetworkstate(){
3 t/ i( O2 x+ H1 wdocument.getelementbyid(network_state).innerhtml=audio.networkstate;
1 o# n' h* Z: {2 t3 C}
4 a0 V# O( L' P7 I// readystate& a, P  j- a; c) g3 q9 w  g6 V
function updatereadystate(){
3 A0 n. K  n- ^- s" hdocument.getelementbyid(ready_state).innerhtml=audio.readystate;
( _+ _, }; Y& |9 B}
6 b9 C" V& D9 l. c& K% i6 S9 S9 ^// buffered
# f& h" `* N" S+ U( }  N$ Jfunction updatebuffered(){# }9 m* _- r. P, p% Z
var ranges=audio.buffered;
$ S8 {* w+ U; D2 y% m5 A, ivar str=;
; {( }3 W. q) E$ rvar n=ranges.length;' P' m4 X! k+ N" J4 u
for(var i=0;i<n;i++){  S% K8 a' r" @4 R$ R3 c- m1 O
str+=(+ranges.start(i)+,+ranges.end(i)+);3 K9 z* `( r! g8 j0 e( B+ F: y
if(i!=n-1){
2 c. I; V# ?8 ^5 wstr+=5 ^) Y& K5 k2 M  a1 H$ }6 ?( I0 S' i
;
  f% Q7 z7 A: |0 W6 M6 P) U}+ @( Z: |$ e5 V" p
}
: S! n- N8 Z3 Qdocument.getelementbyid(buffered).innerhtml=str;
0 U0 T4 ]( L2 e! m}
3 H9 I5 r. T+ a9 C  W1 @5 k' Y' P- m// seekable
' C( ~0 Z+ U9 m- {1 x4 I+ }# Bfunction updateseekable(){
# x3 f7 t  k8 U3 x+ p4 h& rvar ranges=audio.seekable;
6 A/ e0 ~! L$ Z7 q  Q) qvar str=;3 S8 i1 `- G" B
var n=ranges.length;
& N. }3 Z- ^3 T: O* i2 T4 f9 Wfor(var i=0;i<n;i++){
( R( C8 b! S5 s$ x: astr+=(+ranges.start(i)+,+ranges.end(i)+);
& b8 s) h7 \) {2 q! X1 Qif(i!=n-1){8 Z) n; J! X" A9 t
str+=
4 [7 s: Y% v) |" w! b9 K;
; W& T3 J( E- _0 _) ]$ p9 F9 g5 q}
7 w. ~2 k7 o* y, p3 A4 o}$ f* R. F# V) F
document.getelementbyid(seekable).innerhtml=str;4 G8 C) w  S: j3 F7 b5 ~7 ?$ C% z
}
0 p" L8 K" |2 c4 |; E- ]// played
; b6 L7 W, h' y' \, J7 y2 H+ N6 Ffunction updateplayed(){
2 l3 `$ h2 n( bvar ranges=audio.played;
/ D2 K7 w) G( Z( c$ J$ Lvar str=;
6 s- D' l1 E2 k6 n5 Ivar n=ranges.length;, X9 P+ @/ J: p$ W
for(var i=0;i<n;i++){
5 |2 y1 g" s- v5 b& ~$ qstr+=(+ranges.start(i)+,+ranges.end(i)+);
3 m# ^( w5 x: N! ~8 Cif(i!=n-1){
" F. p% N% k; I# fstr+=
( b, Q% S- N2 ?, V6 t;
7 X9 U' x8 t9 q# Z  L3 @}
9 j+ Z" t# |. b( d& b/ d; J' P+ J}
- \% w3 H0 Y# X- fdocument.getelementbyid(played).innerhtml=str;
$ t% @8 k. r' w  X6 l( ]2 o! S. z}" C# a6 J- n, N$ {  s/ M4 h
// error( u. _- d& x. q4 R, p( T& U7 }. @
function updateerror(){3 {5 o/ z$ {* F5 D; D& m
document.getelementbyid(error).innerhtml=audio.error;; p8 T4 \  q7 x2 u) L, ^2 e
}! x, T& Z4 v5 ?; b
9 v7 g0 r* l; \. N
更多网页制作信息请查看: 网页制作

回复|共 8 个

gevaemaidovef 发表于 2015-11-4 20:27:34|Reserved | 查看全部
命不能争,运可以造,弱者认命,强者抗命,能者求命,智者造命。
seazvyt 发表于 2015-11-4 20:27:44|美国 | 查看全部
哎 怎么说那~~
alapScady 发表于 2015-11-4 20:28:03|福建 | 查看全部
来电来函..欢迎洽购...
gevaemaidovef 发表于 2015-11-4 20:28:19|韩国 | 查看全部
疯了.........
effoggikeftor 发表于 2016-2-28 22:44:39|Reserved | 查看全部
说嘛1~~~想说什么就说什么嘛~~
wwzcdenleclv 发表于 2016-2-28 22:45:15|内网 | 查看全部
真的 好久都没有这么笑了~ 好开心哦
gevaemaidovef 发表于 2016-2-28 22:45:32|保加利亚 | 查看全部
今天统计好像出了问题
GoodyFouppy 发表于 2016-2-28 22:45:40|美国 | 查看全部
因删贴不及时所产生的任何法律(书法,基本法,劳动法,婚姻法,输入法,国际法,今日说法,与台湾关系法及文中涉及或可能涉及以及未及之法,各地治安管理条例)纠纷或责任本人概不负责。

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表