1. 程式人生 > 實用技巧 >wavesurfer音波外掛之播放指定語音片段

wavesurfer音波外掛之播放指定語音片段

  使用wavesurfer音波外掛時,可能會用到這麼一個功能,點選音轉文後的某一句文字,則需要在音波條上進行播放這一段錄音,恰好wavesurfer外掛自帶這麼一個功能,直接上程式碼:

<script type="text/javascript" src="/js/wavesurfer.min.js"></script>
 
<div id="waveform"></div>
 
<script>
	
    //初始化
	var wavesurfer = WaveSurfer.create({
	    container: '#waveform',
	    waveColor: 'violet',
	    progressColor: 'blue'
	});
    
    //自帶的獲取錄音時長
	wavesurfer.on('ready', function () {
		$('#getDuration').html(wavesurfer.getDuration());
	});
 
    //播放或暫停
	function play(){
		if(wavesurfer.isPlaying()){
			wavesurfer.playPause();
		}else{
			wavesurfer.setPlaybackRate(1);
			wavesurfer.play();
		}
	}
 
    //1.5倍速播放
	function quaplay(){
		wavesurfer.setPlaybackRate(1.5);
		wavesurfer.play();
	}
 
    //1.8倍速播放
	function qualityplay(){
		wavesurfer.setPlaybackRate(1.8);
		wavesurfer.play();
	}
 
    //靜音播放
	function mute(){
		if(wavesurfer.getMute() == true){
			wavesurfer.setMute(false);
			wavesurfer.play();
		}else{
			wavesurfer.setMute(true);
		}
	}
	
    //載入錄音
	wavesurfer.load('/apps/resource/voice/${voice.id!''}.wav');
    
    //重點在這裡,傳入 start 和 end 時間,秒為單位,就可以播放指定的一段錄音,音波的游標也會移動到這一段錄音的地方,播放後自動會停下
	$(".media-play").click(function(){
		var start = $(this).attr("data-start");
		var end = $(this).attr("data-end");
		wavesurfer.seekTo(0);
		wavesurfer.play(start/1000,end/1000);
	});
	
 
	 
</script>