docs: function() {
  		var t = this;
  
  		var loading = document.createElement('div');
  		loading.className = 'dec_loading';
  		loading.style.display = 'none';
  		t.container.appendChild(loading);
  
  		var error = document.createElement('div');
  		error.className = 'dec_error';
  		error.style.display = 'none';
  		error.innerHTML = '播放异常';
  		t.container.appendChild(error);
  
  		var bigPlay = document.createElement('div');
  
  		if (!zyMedia.features.isVendorBigPlay) {
  			bigPlay.className = 'dec_play';
  			t.container.appendChild(bigPlay);
  			bigPlay.addEventListener('click', function() {
  				// For some device trigger 'play' event 
  				t.media.isUserClick = true;
  
  				t.media.play();
  				// Controls bar auto hide after 3s
  				if (!t.media.paused && !t.options.alwaysShowControls) {
  					t.setControlsTimer(3000)
  				}
  			});
  		}
  
  		t.media.addEventListener('play', function() {
  			// Only for user click
  			if (t.media.isUserClick) {
  				bigPlay.style.display = 'none';
  				loading.style.display = '';
  				t.buffering.style.display = 'none'
  			}
  		});
  
  		t.media.addEventListener('playing', function() {
  			bigPlay.style.display = 'none';
  			loading.style.display = 'none';
  			t.buffering.style.display = 'none';
  			error.style.display = 'none';
  		});
  
  		t.media.addEventListener('seeking', function() {
  			loading.style.display = '';
  			bigPlay.style.display = 'none';
  			t.buffering.style.display = '';
  		});
  
  		t.media.addEventListener('seeked', function() {
  			loading.style.display = 'none';
  			t.buffering.style.display = 'none';
  		});
  
  		t.media.addEventListener('pause', function() {
  			bigPlay.style.display = ''
  		});
  
  		t.media.addEventListener('waiting', function() {
  			loading.style.display = '';
  			bigPlay.style.display = 'none';
  			t.buffering.style.display = '';
  		});
  
  		// Don't listen to 'loadeddata' and 'canplay', 
  		// some Android device can't fire 'canplay' or irregular working when use 'createEvent' to trigger 'canplay' (读者i800)
  
  		// Error handling
  		t.media.addEventListener('error', function(e) {
  			loading.style.display = 'none';
  			bigPlay.style.display = '';
  			t.buffering.style.display = 'none';
  			t.media.pause();
  			error.style.display = '';
  
  			if (typeof t.options.error == 'function') {
  				t.options.error(e);
  			}
  		});
  	}