1.浏览器自带文本转语音vue
var utterThis = new window.SpeechSynthesisUtterance('你好,世界!');
window.speechSynthesis.speak(utterThis);
2.读取mp3文件到浏览器
<audio id="audio" src="/static/utiles/audio/1.mp3"></audio>
#下边是放在前端逻辑代码方法内的
const audio = document.getElementById('audio')
audio.play()
3.Java代码监听新增文件夹文件读取并移动
public void run() {
//方法1JDK1.7自带watch service类可以读取并发但一旦出现延迟同一时间进入的文件就读取不到,所以我用了方法二
while(flag) {
try {
* String filename = null; WatchKey key;//监听类 WatchService
* service=FileSystems.getDefault().newWatchService();
* Paths.get(path).register(service, StandardWatchEventKinds.ENTRY_CREATE);
* key=service.take(); log.info("开始监听》..."); for (WatchEvent<?> event :
* key.pollEvents()) { filename=path+event.context(); File file=new
* File(filename); //TimeUnit.SECONDS.sleep(2);//休眠一秒
* System.out.println(file.getName()); AnalysisEFile analysisEFile=new
* AnalysisEFile(filename); LinkedList<EFileContent>
* eLinkedList=analysisEFile.AnalysisFile();
* optEFileService.AnalysisEFile(eLinkedList); }
*/
for (String string : list) {
AnalysisEFile analysisEFile=new AnalysisEFile(string);
LinkedList<EFileContent> eLinkedList=analysisEFile.AnalysisFile();
optEFileService.AnalysisEFile(eLinkedList);
}
// 如果重设失败,退出监听
if (!key.reset()) {
break;
}
}
//方法二手动timer----------------------------------------------
Timer timer= new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
try {
File file=new File(path);
File[] files=file.listFiles();
if(files.length!=0) {
Set<File> set=new HashSet<>();
for (File file2 : files) {
set.add(file2);
}
Iterator<File> iterator=set.iterator();
while(iterator.hasNext()) {
File file3=iterator.next();
String fString=path+file3.getName();
AnalysisEFile analysisEFile=new AnalysisEFile(fString);
LinkedList<EFileContent> eLinkedList=analysisEFile.AnalysisFile();
try {
optEFileService.AnalysisEFile(eLinkedList);
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
file3.renameTo(new File(path1+file3.getName()));
file3.delete();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
},1000, 60000);
}