2010-12-16 35 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