功能说明:
- 普通玩家选择常规模式,高端玩家选择自定义
- 苹果cmsV10文章加上一个阅读功能,点击播放就能自动有声阅读当前页面的内容文字
- 调用百度的接口,功能性稳定,加上之后让网站显得更加有档次
- 有了这个再也不用去采集什么有声阅读小说了,采集有声小说麻烦,还要改模板,改模块,麻烦的不行
- 所有苹果cmsV10模板通用,兼容性强,其他程序请自行测试
- 演示地址:http://z1.testx.vip/index.php/art/detail/id/4.html
- 功能展示
- 要使用的js代码(创建一个js文件,然后代码放进去,最后引用到需要使用的页面,static/jsui/js/jquery.min.js路径改成自己模板里的路径)
[rihide]
if(typeof jQuery == 'undefined'){
var ijq = document.createElement("script");
ijq.src = "/static/jsui/js/jquery.min.js";
//改成自己的路径
document.head.appendChild(ijq)
}
var Ting = function () {
this.index = 0;
this.play = function () {
var self = this;
//播放器1
if(this.index<window.playList.length) {
//如果已经有预加载的播放器
if(document.querySelector('.audio' + this.index)!=null){
this.audio1 = document.querySelector('.audio' + this.index);
this.audio1.play();
}else{
//没有预加载的播放器
this.audio1 = document.createElement('audio');
this.audio1.controls="controls";
this.audio1.className = 'audio' + this.index;
this.audio1.src = window.playList[this.index];
this.audio1.style.cssText = 'display:none';
document.body.appendChild(this.audio1);
this.audio1.onended = function(){
this.parentNode.removeChild(this);
self.play();
}
this.audio1.play();
}
this.index++;
//播放器2预加载,无缝衔接
if(this.index<window.playList.length){
this.audio2 = document.createElement('audio');
this.audio1.controls="controls";
this.audio2.className = 'audio' + this.index;
this.audio2.src = window.playList[this.index];
this.audio2.style.cssText = 'display:none';
this.audio2.onended = function(){
this.parentNode.removeChild(this);
self.play();
}
document.body.appendChild(this.audio2);
}
}
}
this.pause = function(){
this.audio1.pause();
}
this.nextPlay = function(){
this.audio1.play();
}
}
var booktimer = setInterval(function () {
var bookview = document.querySelector('book');
if(document.querySelector('book') != null && typeof jQuery == 'function'){
clearInterval(booktimer);
var duan = bookview.innerText.split("\n");
if(duan.length < Math.ceil(bookview.innerText.length/100)){
//按长度分
/*duan = [];
for (var ii = 0 ;ii<Math.ceil(bookview.innerText.length/100);ii++){
duan.push(bookview.innerText.substr(ii*100,100));
}*/
//按标点分
duan = bookview.innerText.split("。");
}
duan = duan.filter(function (s) {
return s.replace(/\s/g,'').length>0;
});
window.playList = [];
duan.map(function (s, i) {
window.playList[i] = 'http://tts.baidu.com/text2audio?idx=1&tex='+encodeURI(s.replace(/\s/g,''))+'&cuid=baidu_speech_demo&cod=2&lan=zh&ctp=1&pdt=1&spd=4&per=111&vol=5&pit=7';
});
var tingButton = document.createElement('div');
var ting = null;
tingButton.style.cssText = 'position:fixed;left:0;top:50%;transform:translateY(-50%);width:48px;height:40px;background:green;color:#ffffff;text-align:center;line-height:40px;border-top-right-radius:20px;border-bottom-right-radius:20px';
tingButton.innerText = '播放';
tingButton.onclick = function(){
if (tingButton.innerText == '播放') {
tingButton.innerText = '暂停'
ting = new Ting();
ting.play();
}else if(tingButton.innerText == '继续'){
tingButton.innerText = '暂停'
ting.nextPlay();
}else{
ting.pause();
tingButton.innerText = '继续'
}
}
document.body.appendChild(tingButton);
}
},2000);
- 模板文章页内调用内容
document.write("<book><p>{$obj.art_page_list[$param['page']]['content']|mac_url_content_img}</p></book>");
使用有问题请联系站长[/rihide]