35 lines
		
	
	
		
			640 B
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			640 B
		
	
	
	
		
			JavaScript
		
	
	
	
|  | /** | ||
|  |  * @fileoverview audio 插件 | ||
|  |  */ | ||
|  | const context = require('./context') | ||
|  | let index = 0 | ||
|  | 
 | ||
|  | function Audio (vm) { | ||
|  |   this.vm = vm | ||
|  | } | ||
|  | 
 | ||
|  | Audio.prototype.onUpdate = function () { | ||
|  |   this.audios = [] | ||
|  | } | ||
|  | 
 | ||
|  | Audio.prototype.onParse = function (node) { | ||
|  |   if (node.name === 'audio') { | ||
|  |     if (!node.attrs.id) { | ||
|  |       node.attrs.id = 'a' + index++ | ||
|  |     } | ||
|  |     this.audios.push(node.attrs.id) | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | Audio.prototype.onLoad = function () { | ||
|  |   setTimeout(() => { | ||
|  |     for (let i = 0; i < this.audios.length; i++) { | ||
|  |       const ctx = context.get(this.audios[i]) | ||
|  |       ctx.id = this.audios[i] | ||
|  |       this.vm._videos.push(ctx) | ||
|  |     } | ||
|  |   }, 500) | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = Audio |