2009-10-16 36 views
4

像這篇文章的主題建議,我正在開發一個像nero這樣的套件,它有助於刻錄藍光光盤。對於從哪裏開始,我有點無知。 Java API中有什麼可以讓你做到這一點?如果我要從頭開始,我是否需要從藍光碟規格開始?是否有任何開源工具已經這樣做?我試圖在sourceforge.net上搜索,發現沒有用。任何幫助深表感謝。Java中的藍光燃燒器 - 從哪裏開始?

+0

@Johannes:同意。但是,嘿,如果有人有興趣付款,作爲自由開發人員,不應該真的被打擾。同意? – Jay 2009-10-16 15:01:45

回答

6

開始顯而易見:瞭解您的需求和工具。我嘗試在這裏猜測,也許。

要求:

  1. 如果刻錄藍光光碟
  2. 圖形用戶界面

首選工具:

  • 的Java

現在,Java也許是90年代VM語言的主要例子,憑藉其虛擬機實現了其相對良好的平臺不可知論。這是一種語言設計爲虛擬硬件上運行,以便於將便攜性轉換爲真實的硬件。

現在,這個事實帶來的是,你抽象出許多你不得不關心的東西,比如內存管理細節和體系結構或特定於平臺的細節。在這些事情中,你無法可靠地訪問硬件。畢竟,你抽象了大部分。

現在,刻錄藍光光盤訪問硬件,特別是藍光刻錄機。並不是說這是不可能的,但根據我的愚見,Java並不是正確的工具。你可以通過在C或C++中實現一個庫並使用JNI/JNA來訪問它,但是看看它,你真的獲得了什麼?

當您需要具有大型標準庫的相當現代化的高級語言並且您還需要您的程序在多個平臺上運行時,Java通常是您的選擇。這些是主要用例。其他技術並非不可能,但可能難以實現,具體取決於您需要什麼。

如果你實現了一個本地庫來與BluRay編寫器進行對話並與Java進行對話,那麼你必然需要爲其他平臺重新實現它(假設這就是你想要的 - 如果不是這樣,那麼:爲什麼選擇Java?)。

TL/DR版本:我的觀點是,你不能準確地找到那個主題。首先,Java並不是真的被設計來完成這樣的事情。大部分Java /本地互操作都在JVM中,這已經是很多代碼了。不要指望Java本身支持非常罕見的使用場景,如CD/DVD /藍光刻錄。其次,BluRay是一種相對較新的技術,其編寫者在CD/DVD刻錄機等計算機中還不常用硬件,所以缺乏庫和工具也可能成爲當前市場需求的一面鏡子。

+0

我想你所說的話在很大程度上是有意義的,但是有一些工具(開源和商業),它們使用java來訪問h/w。所以,從邏輯上講,在java中寫一個沒有意義。 – Jay 2009-10-16 15:04:47

+1

詳細闡述了一下。我得到了一個點,並忘記包括一個結論:-) – Joey 2009-10-16 15:05:31

1

低級硬件訪問在純Java中是不可能的,除非它在標準API中,而Bluray不是。

因此,您將不得不使用非Java代碼來訪問硬件;那時你就失去了獨立於Java的平臺,並且必然擁有一個多語言系統,這對編程來說比單單一種語言更加痛苦。但是,如果你可以在(最有可能的)C中找到(或者,我猜,開發)一個多平臺的Bluray寫入API或命令行工具,那麼編寫應用程序的其餘部分仍然有意義Java作爲具有附加功能的GUI包裝器。