能否在基于PHP或JAVA的在线Web应用程序中从客户端录制音频并上传到服务器?

7
我正在构建一个在线Web应用程序,为客户提供测试语言技能的机会。
该应用程序由一系列不同的测试组成,客户可以自由进行。其中之一是客户在网页上看到一个句子,然后需要对着麦克风朗读这个句子。想法是记录音频流,将其发送到服务器并在那里保存到文件中。
使用PHP、Java或类似的技术是否可以实现这个功能?
谢谢您的帮助 :)

Flash应该是你最好的选择。在php中不可能实现。php运行在服务器端,而不是客户端。Java也可以,但我不建议。Flash更为广泛,你可以轻松学习并编写自己的代码或使用免费代码。 - Dreaded semicolon
5个回答

9
我知道你要求PHP,我猜想那是你的首选语言,但你是否考虑过使用HTML5来记录音频?注意:浏览器支持仍然不足,但根据你的要求,值得探讨。
看看这个教程吧,它使用GETUSERMEDIA API来访问你的摄像头和麦克风硬件。
更新: 关于此主题,另一个好的教程

7
唯一解决这个问题的现实方法是使用flash,正如另一个回答所建议的,或者使用Java小程序。也许一两年后情况会改变,您将能够使用JavaScript和HTML5,但现在还不能。
我认为这个问题更适合使用Flash来解决,但对于Java,您需要编写一个Java小程序来进行录制。以下是一些提示,可以帮助您入门:

http://docs.oracle.com/javase/tutorial/deployment/applet/ http://www.java2s.com/Tutorial/Java/0120__Development/CapturingAudiowithJavaSoundAPI.htm http://www.jsresources.org/

你不需要Java语音API或JMF,只需要使用Java声音。你可能想要使用JMF来压缩音频文件以加快上传速度,但是你可以在没有它的情况下让它正常工作。请注意,在浏览器中录制音频可能需要对你的小程序进行“签名”。
如果你不喜欢Flash,你也可以使用Haxe编写你的Flash代码。

2

谢谢您的回复 :) 我已经看到了这个答案,但不幸的是我想知道是否有类似 PHP 或 Java 的东西... 不过还是谢谢!=) - user1498926

1

可以使用Flash和Java同时解决这个问题。您可以使用Flash组件录制声音,并将其分块发送到服务器端,可以使用Java实现。

在Flash中创建声音录制器的优点有很多。

  • Flash是广泛安装的浏览器插件。
  • Java小程序在运行之前会发出警告,这经常会关闭用户。
  • 经过数字验证,大多数媒体应用程序都是使用Flash创建的,因此为您提供了良好的支持。
  • Java小程序用于需要适应浏览器并且必须安全的厚客户端。您仍然会发现许多实时交易应用程序是用Java小程序编写的。

以下是创建Flash中音频录制器的几个教程:

http://active.tutsplus.com/tutorials/actionscript/create-a-useful-audio-recorder-app-in-actionscript-3/

Adobe 录制声音并保存

这个收集的声音流可以在客户端以块的形式存储,并可以与后端服务器同步(任何服务器端语言都可以)。

使用Java实现服务器具有优势。如果明天需要,您可以使用Java实现的Red5服务器来流式传输相同的声音。

了解更多信息:http://www.red5.org/


0

有一个音频录制的SDK是用PHP、Flash和HTML5编写的。http://recordmp3online.com

实际上,我就是那个SDK的作者(完全公开)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接