主要的功能模块在两个程序包中提供:
javaxmediasoundsampled-该程序包明确地说明了捕获、混合以及回播数字采样音频的界面。
javaxmediasoundMIDI-该程序包提供MIDI合成、序列化以及事件传送的界面。
代码如下;
import javaio; import javaxsoundsampled; import javanet; / Title: VoiceChat Description: 输出音频(放音程序) Copyright: Copyright (c) 2001 Company: @author 你猜! @version 10 / class Playback implements Runnable { final int bufSize = 16384; SourceDataLine line; Thread thread; Socket s; Playback(Socket s){//构造器 取得socket以获得网络输入流 thiss=s; }
public void start()
代码和详细解释太长,你给个邮箱,我给你发过去
AudioCLip主要的方法有:play()播放依次声音;loop()循环播放音乐;stop()停止播放。做法一:InputStreamis=null;AudioStreamas=null;is=getClass()getResourceAsStream("awav");try{as=newAudioStream(is);}catch(IOExceptione){}AudioPlayerplayerstart(as);此方法将音乐文件放入流中在播放,仅限于JavaApplication,容易报错,空指针异常,或者是流异常,不推荐。做法二:Stringmusic="awav";AudioClipclip=AppletnewAudioClip(getClass()getResource(music));次方法在Applet中运行没有问题,但是Application中getclass()会返回空指针,导致失败。推荐做法:privateURLurl;privateAudioClipac;Filef1=newFile("C:/3wav");try{url=f1toURL();}catch(MalformedURLExceptione){//TODOAuto-generatedcatchblockeprintStackTrace();}ac=AppletnewAudioClip(cb1);acplay();
// 直接给一个只读一行的吧,呵呵,数字之间以空格来分隔
public static void main(String[] args) throws Exception {
File file = new File("src/testtxt");
double[] a = getLineFromTxt(file," ");
for(int i = 0; i< alength; i++){
Systemoutprintln("a["+i+"] = "+a[i]);
}
}
test中的数据以空格隔开 12 32 3202
public static double[] getLineFromTxt(File file, String split) throws Exception{
BufferedReader br = new BufferedReader(new FileReader(file));
String firstLine = brreadLine(); //就读第一行哦
String[] arrs = firstLinesplit(" ");
//将字符数组转为double数组
double[] arr = new double[arrslength];
for(int i = 0; i< arrlength; i++){
arr[i] = DoubleparseDouble(arrs[i]);
}
生成 wav,然后网页中嵌入
请参考生成wave的C#代码
/// <summary>
/// 输出WAV
/// </summary>
/// <param name="path">保存路径</param>
/// <param name="str">要转换的文本内容</param>
/// <returns></returns>
public bool WreiteToWAV(string path,string str,SpeechAudioFormatType SpAudioType)
{
SpeechStreamFileMode SpFileMode = SpeechStreamFileModeSSFMCreateForWrite;
SpFileStream SpFileStream = new SpFileStream();
SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlagsSVSFlagsAsync;
SpAudioFormat SpAudio = new DotNetSpeechSpAudioFormat();
SpAudioType = SpAudioType;
SpFileStreamFormat = SpAudio;
SpFileStreamOpen(path, SpFileMode, false);
voiceAudioOutputStream = SpFileStream;
voiceSpeak(str, SpFlags);
voiceWaitUntilDone(TimeoutInfinite);
SpFileStreamClose();
return FileExists(path);
}
以上就是关于通过输入设备获取音频流 原理或java实现全部的内容,包括:通过输入设备获取音频流 原理或java实现、java js前端请求后台去获得音频流,然后播放音乐,音乐可以控制进度,显示总时长、java怎样把一个音频文件读到一个数组中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)