通过输入设备获取音频流 原理或java实现 java js前端请求后台去获得音频流,然后播放音乐,音乐可...
\u600e\u4e48\u901a\u8fc7C#\u6216JAVA\u5f97\u5230\u4ece\u9ea6\u514b\u98ce\u5f97\u5230\u58f0\u97f3\u6216\u5b83\u7684\u58f0\u9891\u6587\u4ef6?InputDeviceInputDevice\u754c\u9762\u63d0\u4f9b\u4e00\u4e2a\u65b9\u6cd5getInputChannel\u6765\u83b7\u5f97\u4e00\u4e2aInputChannel\u5bf9\u8c61\uff0c\u4ece\u4e2d\u6355\u83b7\u53ef\u8bfb\u7684\u97f3\u9891\u6570\u636e\u3002OutputDeviceOutputDevice\u754c\u9762\u63d0\u4f9b\u4e00\u4e2a\u65b9\u6cd5getOutputChannel\u6765\u83b7\u5f97\u4e00\u4e2aOutputChannel\u5bf9\u8c61\uff0c\u97f3\u9891\u6570\u636e\u53ef\u4ee5\u5199\u5165\u8be5\u8f93\u51fa\u901a\u9053\uff0c\u5e76\u4e88\u64ad\u653e\u3002MixerMixer\u652f\u6301\u591a\u4e2aInputChannel\u548c/\u6216Clip\u3002 \u53e6\u5916,\u5b83\u63d0\u4f9b\u4e86\u67e5\u8be2\u65b9\u6cd5\uff0c\u4ece\u4e2d\u53ef\u5f97\u5230\u5b83\u6240\u652f\u6301\u7684\u901a\u9053\u6570\u91cf\uff0c\u5b83\u4e5f\u63d0\u4f9b\u4e86\u652f\u6301\u540c\u6b65\u6682\u505c\u548c\u5524\u9192\u591a\u4e2a\u901a\u9053\u64ad\u653e\u7684\u65b9\u6cd5\u3002\u63a7\u4ef6\u901a\u9053\u548c\u97f3\u9891\u7aef\u53e3 (\u6bd4\u5982\u626c\u58f0\u5668\u548c\u9ea6\u514b\u98ce)\u4e00\u822c\u80fd\u652f\u6301\u4e00\u7ec4\u63a7\u4ef6\u6bd4\u5982\u589e\u76ca\u548c\u5b9a\u4f4d\u3002\u901a\u8fc7\u5c06\u5b83\u7684\u7c7b\u4f5c\u4e3a\u53c2\u6570\u4f20\u7ed9getControl()\u65b9\u6cd5\uff0cJAVA\u58f0\u97f3 API\u7684\u901a\u9053\u5bf9\u8c61\u548c\u7aef\u53e3\u5bf9\u8c61\u53ef\u4ee5\u83b7\u5f97\u4e00\u4e2a\u7279\u522b\u7684\u63a7\u4ef6\u3002\u7f16\u7801\u5668Codecs\u53ef\u4ee5\u5bf9\u97f3\u9891\u6570\u636e\u7f16\u7801\u548c\u89e3\u7801\uff0c\u5141\u8bb8\u5728\u4e0d\u540c\u683c\u5f0f\u548c\u7f16\u7801\u4e4b\u95f4\u8f6c\u6362\u3002JAVA\u58f0\u97f3 API\u901a\u8fc7AudioSystem\u7c7b\u4e2d\u7684\u65b9\u6cd5\u4e3a\u8fd9\u4e9b\u8f6c\u6362\u63d0\u4f9b\u4e86\u9ad8\u7ea7\u63a5\u53e3\u3002\u5982\u679c\u7ed9\u4e86\u4e00\u4e2a\u7279\u6b8a\u7684\u97f3\u9891\u6d41\uff0c\u5e94\u7528\u7a0b\u5e8f\u4f1a\u67e5\u8be2\u97f3\u9891\u7cfb\u7edf\u6765\u627e\u5230\u76f8\u5e94\u7684\u8f6c\u6362\uff0c\u4ece\u800c\u5f97\u5230\u6307\u5b9a\u683c\u5f0f\u7684\u97f3\u9891\u6d41\u3002\u6587\u4ef6\u548c\u6d41\u97f3\u9891\u6d41\u662f\u4e0e\u97f3\u9891\u6570\u636e\u683c\u5f0f\u548c\u6570\u636e\u957f\u5ea6\u76f8\u5173\u7684\u8f93\u5165\u6d41\uff0c\u6587\u4ef6\u6d41\u662f\u4e0e\u6587\u4ef6\u7c7b\u578b\u548c\u6570\u636e\u957f\u5ea6\u76f8\u5173\u7684\u8f93\u5165\u6d41\u3002JAVA\u58f0\u97f3 API\u5728AudioSystem\u7c7b\u4e2d\u4e3a\u97f3\u9891\u6587\u4ef6\u548c\u97f3\u9891\u6d41\u4e4b\u95f4\u7684\u8f6c\u6362\u63d0\u4f9b\u4e86\u63a5\u53e3\u3002\u67e5\u8be2\u548c\u8bbf\u95ee\u5b89\u88c5\u7ec4\u4ef6AudioSystem\u7c7b\u5145\u5f53\u5230\u91c7\u6837\u97f3\u9891\u7cfb\u7edf\u8d44\u6e90\u5165\u53e3\u7684\u89d2\u8272\u3002\u8be5\u7c7b\u5141\u8bb8\u7a0b\u5e8f\u5458\u67e5\u8be2\u548c\u8bbf\u95ee\u8f93\u5165\u8bbe\u5907\u3001\u8f93\u51fa\u8bbe\u5907\u4ee5\u53ca\u5b89\u88c5\u597d\u7684\u6df7\u97f3\u8bbe\u5907\u3002\u53e6\u5916\uff0cAudioSystem\u5305\u542b\u8bb8\u591a\u5728\u4e0d\u540c\u97f3\u9891\u6570\u636e\u683c\u5f0f\u95f4\u8f6c\u6362\u7684\u65b9\u6cd5\u3002\u5b83\u4e5f\u63d0\u4f9b\u4e00\u4e9b\u65b9\u6cd5\uff0c\u4f7f\u5f97\u5728\u4e0d\u9700\u8981\u5bf9\u8bbe\u5907\u76f4\u63a5\u64cd\u4f5c\u7684\u60c5\u51b5\u4e0b\uff0c\u76f4\u63a5\u83b7\u5f97\u8f93\u5165\u901a\u9053\u6216\u8f93\u51fa\u901a\u9053\u3002\u4f60\u53ef\u4ee5\u8bd5\u8bd5\u505a
AudioCLip\u4e3b\u8981\u7684\u65b9\u6cd5\u6709\uff1aplay()\u64ad\u653e\u4f9d\u6b21\u58f0\u97f3\uff1bloop()\u5faa\u73af\u64ad\u653e\u97f3\u4e50\uff1bstop()\u505c\u6b62\u64ad\u653e\u3002\u505a\u6cd5\u4e00\uff1aInputStreamis=null;AudioStreamas=null;is=getClass().getResourceAsStream("a.wav");try{as=newAudioStream(is);}catch(IOExceptione){}AudioPlayer.player.start(as);\u6b64\u65b9\u6cd5\u5c06\u97f3\u4e50\u6587\u4ef6\u653e\u5165\u6d41\u4e2d\u5728\u64ad\u653e\uff0c\u4ec5\u9650\u4e8eJavaApplication\uff0c\u5bb9\u6613\u62a5\u9519\uff0c\u7a7a\u6307\u9488\u5f02\u5e38\uff0c\u6216\u8005\u662f\u6d41\u5f02\u5e38\uff0c\u4e0d\u63a8\u8350\u3002\u505a\u6cd5\u4e8c\uff1aStringmusic="a.wav";AudioClipclip=Applet.newAudioClip(getClass().getResource(music));\u6b21\u65b9\u6cd5\u5728Applet\u4e2d\u8fd0\u884c\u6ca1\u6709\u95ee\u9898\uff0c\u4f46\u662fApplication\u4e2dgetclass()\u4f1a\u8fd4\u56de\u7a7a\u6307\u9488\uff0c\u5bfc\u81f4\u5931\u8d25\u3002\u63a8\u8350\u505a\u6cd5\uff1aprivateURLurl;privateAudioClipac;Filef1=newFile("C:/3.wav");try{url=f1.toURL();}catch(MalformedURLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}ac=Applet.newAudioClip(cb1);ac.play();
主要的功能模块在两个程序包中提供:javax.media.sound.sampled-该程序包明确地说明了捕获、混合以及回播数字采样音频的界面。
javax.media.sound.MIDI-该程序包提供MIDI合成、序列化以及事件传送的界面。
代码如下;
import java.io.*; import javax.sound.sampled.*; import java.net.*; /** * Title: VoiceChat * Description: 输出音频(放音程序)* Copyright: Copyright (c) 2001 * Company: * @author 你猜!* @version 1.0 */ class Playback implements Runnable { final int bufSize = 16384; SourceDataLine line; Thread thread; Socket s; Playback(Socket s){//构造器 取得socket以获得网络输入流 this.s=s; }
public void start()
代码和详细解释太长,你给个邮箱,我给你发过去
这个问题好难啊.我也在开始研究视频和音频..现在只能给你一些网站了.. http://hi.baidu.com/dailyye/blog/item/f7dfa57eab9af23a0cd7da8d.html http://www.codeproject.com/都是有流媒体的源代码...可以下下来研究研究.与君共勉.
扩展阅读:二合一音频线怎么插 ... mp3音频转换txt ... 手机录音提取纯净人声 ... 手机如何提取音乐分轨 ... 专业音频测试软件 ... 手机上怎么把录音转mp3 ... 音频提取器免费 ... 怎样安装音频设备 ... 让录音变的清晰的软件 ...