Board logo

标题: 【完结】50元求脚本顺序读出来spx音频文件 [打印本页]

作者: lxh623    时间: 2019-11-17 08:52     标题: 【完结】50元求脚本顺序读出来spx音频文件

本帖最后由 lxh623 于 2019-11-20 20:44 编辑

<x-pr><img src="/playsound.png"><a href="sound://báo.spx"><a href="sound://biǎn.spx"></x-pr>

有时候会更多的<a href,怎样用java,使得点击图标让一行顺序读出?

这样的行首都有<x-pr> 。
图标也许在最后。
<x-pr><a href="sound://báo.spx"><a href="sound://biǎn.spx"><img src="/playsound.png"></x-pr>
作者: xczxczxcz    时间: 2019-11-17 15:46

用java 写脚本? JS? 是不是想让 每行 结果变成:
  1. <x-pr><img src="/playsound.png">放在前面</img><a href="sound://báo.spx">这是第一个按原顺序放置</a><a href="sound://biǎn.spx">这是第二个按原顺序放置</a></x-pr>
复制代码

作者: lxh623    时间: 2019-11-17 20:27

本帖最后由 lxh623 于 2019-11-17 20:29 编辑

回复 2# xczxczxcz
spx是个音频文件,java能不能让这些文件(一行一个到三十个)按照顺序读出来,只点击一下。
谢谢!
作者: flashercs    时间: 2019-11-17 20:54

这个<script>放到<body>最后试试
  1. <script>
  2.     (function () {
  3.       var audioPlaying = null;
  4.       function audio_ended(e) {
  5.         var nodeNext = e.target.nextElementSibling;
  6.         if (nodeNext && nodeNext.nodeName.toLowerCase() == 'audio') {
  7.           nodeNext.play();
  8.         } else {
  9.           audioPlaying = null;
  10.         }
  11.       }
  12.       function audio_play(e) {
  13.         audioPlaying = e.target;
  14.       }
  15.       function xpr_click(e) {
  16.         if (audioPlaying && !audioPlaying.paused) {
  17.           audioPlaying.pause();
  18.         }
  19.         e.currentTarget.getElementsByTagName('audio')[0].play();
  20.       }
  21.       var xprlist = document.getElementsByTagName('x-pr');
  22.       for (var i = 0; i < xprlist.length; i++) {
  23.         var xpr = xprlist[i];
  24.         var soundlist = xpr.getElementsByTagName('a');
  25.         for (var j = 0; j < soundlist.length; j++) {
  26.           var nodeAudio = document.createElement('audio');
  27.           nodeAudio.setAttribute('src', soundlist[j].getAttribute('href').replace(/^sound:\/\//i, ''));
  28.           nodeAudio.addEventListener('play', audio_play, false);
  29.           nodeAudio.addEventListener('ended', audio_ended, false);
  30.           xpr.appendChild(nodeAudio);
  31.         }
  32.         xpr.addEventListener('click', xpr_click, false);
  33.       }
  34.     })();
  35.   </script>
复制代码

作者: lxh623    时间: 2019-11-18 09:10

本帖最后由 lxh623 于 2019-11-18 09:13 编辑

回复 4# flashercs
我是准备做一个词典。
下面是例子。和词典打包工具。词典用mdict或者手机上深蓝词典打开。
暂时没有做到。
或者我做成下面这行的样子。能不能点击任何一个都从头连读。
<x-pr><a href="sound://duyin/báo.spx">báo</a><a href="sound://duyin/biǎn.spx">biǎn</a></x-pr><br>


链接:https://pan.baidu.com/s/1GksJSNB0VlvDI6cfLNZzbg
提取码:uw2z

谢谢!
作者: flashercs    时间: 2019-11-18 19:19

本帖最后由 flashercs 于 2019-11-18 19:28 编辑

回复 5# lxh623


链接:https://pan.baidu.com/s/1O20VZ4vQ9vsjbBHOn-eHcw
提取码:s14r

生成词典 "转换后的2.mdx";
读音速度快慢,可以调节.js脚本第6行delay的数值,单位是毫秒,默认是1.5s间隔.
  1. delay: 1500,//playsound interval in ms
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2