给博客添加TTS语音朗读 简单快速版

前言

最近来访我博客的朋友有没有发现一个新功能?在每篇文章评论栏的最下方有一个播放器的图标,你只要轻轻一点,就可以听到百度语音朗读我的文章!

很多人没办法看完整篇文章,有的只是看看标题就马上去评论。这种现象应该很多,包括我自己。因此老铁郑永博客的博主就折腾了这样一个功能。这个朗读完全可以让你边做其他事情,边听完文章。

独乐乐不如众乐乐。我将郑永博客的教程分享给各位朋友。

先来看看最核心的部分:

[mark_a]http://tts.baidu.com/text2audio?cuid=baiduid&lan=zh&ctp=1&pdt=311&tex=后面加上900字以内的内容就可以正常朗读[/mark_a]

以下代码加在single.php页面的任何你想插入的地方:

<?php
function mbStrSplit ($string, $len = 1) { //对内容进行分割
$start = 0;
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,$start,$len,"utf8");
$string = mb_substr($string, $len, $strlen,"utf8");
$strlen = mb_strlen($string);
}
return $array;
}
function match_chinese($chars,$encoding = 'utf8') //过滤特殊字符串
{
$pattern = ($encoding == 'utf8')?'/[\x{4e00}-\x{9fa5}a-zA-Z0-9,,。 ]/u':'/[\x80-\xFF]/';
preg_match_all($pattern,$chars,$result);
$temp = join('',$result[0]);
return $temp;
}
$str=$post->post_content;
$str = strip_tags($str);
$str = str_replace("、",",",$str); //保留顿号
$str = match_chinese($str);
$zishu = mb_strlen(preg_replace('/\s/','',html_entity_decode(strip_tags($str))),'UTF-8');
$r = mbStrSplit($str, 900);
$qian = "http://tts.baidu.com/text2audio?cuid=baiduid&lan=zh&ctp=1&pdt=311&tex=";
?>
<?php if ($zishu <= 2700): ?> //2700可改为更大数字,亲测2000字以上文章可朗读
<video id="langdu" style="display:none">
<source id="source" src="<?php echo $qian.$r[0]; ?>" type="video/mp4">
</video>
<script type="text/javascript">
function playPause() {
var music = document.getElementById('langdu');
var music_btn = document.getElementById('music_btn01');
if (music.paused) {
music.play();
music_btn.src = '<?php bloginfo('template_url'); ?>/img/zanting.png'; //播放图片
var aud = document.getElementById("langdu");
aud.onended = function() {
aud.src = "<?php echo $qian.$r[1]; ?>"
aud.play();
aud.addEventListener("ended", function() {
aud.src = "<?php echo $qian.$r[2]; ?>"
aud.play();
aud.addEventListener("ended", function() {
aud.pause();
}, false);
}, false);
};
} else {
music.pause();
music_btn.src = '<?php bloginfo('template_url'); ?>/img/bofang.png'; //暂停图片
}
}
</script>
<span  class="du">
<a href="javascript:playPause();"><img src="<?php bloginfo('template_url');
?>/img/bofang.png" width="25" height="25" id="music_btn01" border="0"></a>
</span>
<?php endif; ?>

播放器的按钮下载本站的就可以,注意修改代码中的图片地址。关于播放器的位置,我询问了郑永博主,但是由于我笨拙,他帮我调试好了,但是我仍然没弄好,就这样把播放器位置放到了最底下。

按钮的位置css调整:

.du {
float: left;
margin-right: 10px;
cursor: pointer;
}

以上便是全部的教程。感谢郑永博主为我们折腾出这样一个新潮功能。以后大家来访我的博客,可以选择阅读和听读了哈哈!(教程来源:https://xptt.com/654048.html)

共有 36 条评论

  1. 这个API很早就有了,但确实没多大实用性。不过今天看了你这个,我忽然想到可以做一些产品说不定能盈利,比如说段子网、微小说网、黄网等,加上自动语音的功能,手机上就能听……不过大概会被停掉API吧。

  2. 功能很不错,如果把这个按钮放在文章标题下方可能会更好,现在好像是放在整个页面左下角,不是很人性化。

发表评论

电子邮件地址不会被公开。 必填项已用*标注