Вопрос

Как следует из темы этого поста, я рассматриваю возможность разработки такого пакета, как Nero, который поможет записывать диски Bluray.Я понятия не имею, с чего начать.Есть ли что-нибудь в Java API, которое позволяет вам это сделать?Если бы мне пришлось начинать с нуля, пришлось бы мне начинать со спецификации диска Bluray?Существуют ли какие-либо инструменты с открытым исходным кодом, которые уже делают это?Я попробовал поискать на sourceforge.net и не нашел ничего полезного.Буду признателен за любую оказанную помощь.

Это было полезно?

Решение

Начнем с очевидного:Знайте свои требования и инструменты.Я пытаюсь угадать здесь, может быть.

Требования:

  1. Должен записывать диски BluRay
  2. Графический интерфейс пользователя

Предпочтительный инструмент:

  • Джава

Теперь Java, являясь, пожалуй, ярким примером языка виртуальных машин 90-х годов, достигает своей относительно хорошей независимости от платформы благодаря своей виртуальной машине.Это язык разработанный бежать по виртуальный аппаратное обеспечение для облегчения переносимости на реальное оборудование.

Этот факт приводит к тому, что вы абстрагируете от себя многие вещи, о которых вам придется заботиться, например, детали управления памятью, архитектуру или особенности платформы.Среди тех вещей, к которым вы не можете получить надежный доступ, — это оборудование.В конце концов, вы абстрагировали большую часть этого.

Теперь, чтобы записать диск BluRay, вам иметь для доступа к оборудованию, в частности к записывающему устройству BluRay.Не то чтобы это невозможно, но Java, по моему скромному мнению, не лучший инструмент для этого.Вы можете изо всех сил реализовать библиотеку на C или C++ и использовать JNI/JNA для доступа к ней, но, посмотрев на это, что вы действительно получите?

Java обычно является выбором, когда вам нужен достаточно современный язык высокого уровня с большой стандартной библиотекой, а также вам нужно, чтобы ваши программы работали более чем на одной платформе.Это основные варианты использования.С другими технологиями это не невозможно, но, возможно, добиться этого труднее, в зависимости от того, что именно вам нужно.

Если вы реализуете собственную библиотеку для связи с записывающим устройством BluRay и взаимодействуете с ней из Java, то вам обязательно потребуется повторно реализовать ее и для других платформ (при условии, что это то, что вы хотите, а если нет, то еще раз:Почему Ява?).

Версия TL/DR:Я хочу сказать, что неудивительно, что вы не можете найти много информации именно по этой теме.Во-первых, Java на самом деле не была предназначена для подобных вещей.Большая часть взаимодействия Java/native находится в JVM, а это уже очень много кода.Не ждите, что Java изначально поддерживает очень редкие сценарии использования, такие как запись CD/DVD/BluRay.Во-вторых, BluRay — это относительно новая технология, устройства записи которой еще не распространены в компьютерах, например устройства записи CD/DVD, поэтому отсутствие библиотек и инструментов также может быть отражением текущих потребностей рынка.

Другие советы

Низкоуровневый аппаратный доступ просто невозможен в чистой Java, если только он не реализован в стандартном API, чего нет в Bluray.

Следовательно, для доступа к оборудованию вам придется использовать код, отличный от Java;в этот момент вы теряете независимость Java от платформы и обязательно получаете многоязычную систему, программировать которую всегда труднее, чем использовать только один язык.

Однако, если вы можете найти (или, я думаю, разработать) многоплатформенный API для записи Bluray или инструмент командной строки на (скорее всего) C, то, возможно, все равно имеет смысл написать остальную часть приложения на Java в виде графического интерфейса. оболочка с дополнительным функционалом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top