参考博客:Java爬虫-爬取四级词汇网站音频
运行效果
根据想要拼接的单词,生成一个单词朗读的mp3
文件,可以自定义每个单词朗读时的重复次数。
代码思路:
- 先把要拼接的单词放进一个
String
数组中 - 然后遍历这个数组,用(伪)爬虫下载每一个单词的音频文件
- 最后再把这些音频文件拼接起来,生成mp3文件 ↓
关于:有道词典语音接口
基于有道翻译的公共api可以制作自己的翻译app,前几天有这个想法,发现没有办法实现朗读功能,搜索了一下找到了这个接口,解决了这个问题。非常简单,直接取网络地址进行播放就可以了,相当于播放一个音频文件,解析速度挺快。
美音:http://dict.youdao.com/dictvoice?type=0&audio=hello
英音:http://dict.youdao.com/dictvoice?type=1&audio=hello
api仅有两个参数,就是发音类型和单词,在audio=后面加上单词就ok了,type=0为美国发音,type=1为英国发音,做个程序自己用,几乎还可以吧。下面附上一个"hello"的测试,看下效果吧,第一个为美音,第二个为英音
关于:java播放mp3格式音频文件
1、下载第三方jar包,网址:http://www.javazoom.net/javalayer/javalayer.html
2、下载完成之后解压提取jl1.0.0.1.jar
3、在eclipse的Java Build Path
中添加jl1.0.0.1.jar
4、播放MP3文件的源代码(参考使用)
package com.lt.music;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.*;
/***
- 音乐播放器类
- @author lt
- time 2016-7-5
*/
public class AudioPlayer{
Player player;
File music;
//构造方法 参数是一个.mp3音频文件
public AudioPlayer(File file) {
this.music = file;
}
//播放方法
public void play() throws FileNotFoundException, JavaLayerException {
BufferedInputStream buffer = new BufferedInputStream(new FileInputStream(music));
player = new Player(buffer);
player.play();
}
}
关于:从四级听力网站上下载MP3的代码(参考使用)
主程序类
package top.chen.dogwood;
import java.io.IOException;
import java.net.MalformedURLException;
/**
* 爬取指定链接的一组MP3 文件
*
* 放入指定的目录中
*
* @author Geek
*
*/
public class Application {
public static void main(String[] args) throws MalformedURLException,
IOException {
String base = "http://download.dogwood.com.cn/online/4jlxbx/";
String[] strings = new String[35] ;
for (int i = 1; i <= 35; i++) {
strings[i-1] = base+String.format("%02d", i)+".mp3";
}
DownloadUtils downloadUtils = new DownloadUtils(strings,"mp3","E:\\360Downloads\\TempFile");
try {
downloadUtils.httpDownload();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
下载工具类
package top.chen.dogwood;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class DownloadUtils {
// 目标链接字符串
private String[] urlString;
// 目标文件的格式
private String targetType;
// 存放文件路径
private File rootDir;
public String[