2010-12-16 39 views
0

这是我在J2SE中用Gstreamer的Native java包装器编写的代码。但是,它在网络浏览器中不起作用,我非常不高兴我现在可以做什么,我没有别的办法可以结束这个项目。不可能用java applet做音频视频吗?

是不是可以使用Gartreamer的Java Applet进行音频/视频,或者制作CD/DVD音质的音频? (这不是针对万维网的,只有对等网络浏览器或对等网络浏览器)。

例如:工作示例为j2SE,但相同的代码不能与浏览器中的java applet一起使用。

package audio; 

/* Audio, Global class */ 
import org.gstreamer.*; 

import java.io.IOException; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

// Used via applet: 
// <applet code="sipphone.MainApplet" width=600 height=600 archive="Audio.jar" > 
public class MyGst 
{ 

    public static void runit() 
    { 
     Gst.init(); 
     Pipeline pipe = new Pipeline("MyGst"); 
     Element src = ElementFactory.make("autoaudiosrc", "Source"); 
     Element sink = ElementFactory.make("autoaudiosink", "Destination"); 
     pipe.addMany(src, sink); 
     src.link(sink); 
     pipe.setState(State.PLAYING); 

     Gst.main(); 
     pipe.setState(State.NULL);  
    } 

} 

注意:后续任务:在任何Web浏览器中,这种本地方式工作,当你有Java。所以JAVA小程序可以在任何浏览器中运行。那些和我一样的人,面对这个问题,不要感到困惑。

回答

5

如果它本地工作,那么总是有创建一个签名的小程序的选项。这将允许你有完整的本地访问权限,我猜测它是gstreamer需要的东西(它可能在运行时加载gstreamer本地库)。

这对用户来说会更麻烦一些,因为他们必须授予它运行权限,并且更烦人一些,因为您必须签署小程序,但它应该可以工作。

另一种选择是查看是否有任何纯Java音频流库可用于替代gstreamer。我不能说这些,因为我从来没有做过比音频更复杂的音频文件,但它们可能存在。

+0

不幸的是,我在寻找和获取信息,几乎都提到,Java小程序不能拥有从Web浏览器的本地访问,并且这可能是不可能实现的。如果我与其他音频库或框架一起使用,Audio的质量将永远不会像Gstreamer那样好。整个WEB浏览器世界都受到严格限制,并且与创造性项目无关。 – YumYumYum 2010-12-16 21:42:55

+3

Java applet可以通过Web浏览器进行*完全*本地访问*如果它们已被签名*。在我们开发工具之前,我们有一个可以下载,安装并在运行时加载DLL的签名小程序。已签名的applet有权这样做,并且本机应用程序可以执行其他任何操作。这是签名applet的目的,而Java applet可以做到这一点,Flash不能做到这一点。 – Herms 2010-12-16 22:00:53

-4

多一点讨厌你,因为你必须签署苹果

什么呢?恼人的签名?哦,对,你更容易被侵犯知识产权,对不对?

“其好偷的辩论,因为它的那么好分享......”温赖特劳顿

+2

为什么你认为有任何知识产权侵权行为? – 2010-12-16 21:21:31

+1

签名为构建过程添加更多步骤。您可能希望获得“有效”证书而不是自签名,这是另一步。由于额外的步骤,管理已签名的applet比未签名更烦人。不知道你从哪里获得知识产权侵权,但与这里的任何事情无关。 – Herms 2010-12-16 22:01:23