2009-10-16 8 views
4

Comme le suggère le sujet de cet article, je cherche à développer une suite comme nero qui aide à graver les disques bluray. Je ne sais pas du tout par où commencer. Y a-t-il quelque chose dans l'API Java qui vous permet de faire cela? Si je devais recommencer à zéro, devrais-je commencer par la spécification du disque bluray? Existe-t-il des outils open source qui le font déjà? J'ai essayé de chercher sur sourceforge.net et n'ai rien trouvé d'utile. Toute aide est très appréciée.Bluray Burner à Java - Par où commencer?

+0

@Johannes: D'accord. Mais, si quelqu'un est intéressé à payer, en tant que développeur indépendant, il ne devrait pas vraiment être dérangé. D'accord? – Jay

Répondre

6

Pour commencer par l'évidence: Connaissez vos besoins et vos outils. J'essaie de deviner ici, peut-être.

Exigences:

  1. brûlerez disques BluRay
  2. Interface utilisateur graphique

outil préféré:

  • Java

Maintenant, Java, étant peut-être le principal exemple d'un langage VM à partir des années 90, atteint son relativement bon agnosticisme de plate-forme grâce à sa VM. C'est un langage conçu pour fonctionner sur un matériel virtuel pour faciliter la portabilité sur le matériel réel. Maintenant, ce qui vient avec ce fait, c'est que vous pouvez éliminer beaucoup de choses dont vous auriez à vous soucier, comme les détails de gestion de la mémoire et l'architecture ou les spécificités de la plate-forme. Parmi ces choses, vous ne pouvez pas accéder de manière fiable au matériel. Après tout, vous avez fait abstraction de tout cela. Maintenant, pour graver un disque BluRay vous avez pour accéder au matériel, en particulier le graveur BluRay. Ce n'est pas impossible, mais Java n'est pas, à mon humble avis, le bon outil pour cela. Vous pouvez sortir de votre chemin en implémentant une bibliothèque en C ou C++ et en utilisant JNI/JNA pour y accéder mais en y regardant, que gagnez-vous vraiment? Java est généralement un choix lorsque vous avez besoin d'un langage de haut niveau assez moderne avec une grande bibliothèque standard et que vous avez également besoin de vos programmes pour fonctionner sur plus d'une plate-forme. Ce sont les principaux cas d'utilisation. Ce n'est pas impossible avec d'autres technologies, mais peut-être plus difficile à réaliser, en fonction de ce dont vous avez exactement besoin. Si vous implémentez une bibliothèque native pour parler à l'enregistreur BluRay et que vous en discutez avec Java, vous devez forcément la réimplémenter pour d'autres plates-formes (en supposant que ce soit ce que vous voulez - sinon, encore une fois: Pourquoi Java?). Version TL/DR: Ce que je veux dire, c'est que ce n'est pas trop surprenant que vous ne trouviez pas grand-chose sur ce sujet. D'une part, Java n'était pas vraiment conçu pour faire ce genre de choses. La majeure partie de l'interopérabilité Java/native réside dans la JVM et c'est déjà énormément de code. Ne vous attendez pas à ce que Java prenne en charge nativement des scénarios d'utilisation très rares tels que la gravure de CD/DVD/BluRay. Deuxièmement, BluRay est une technologie relativement nouvelle avec des écrivains pas encore le matériel commun dans les ordinateurs tels que les graveurs de CD/DVD, de sorte que le manque de bibliothèques et d'outils peut également être un miroir des demandes actuelles du marché.

+0

Je suppose que ce que vous dites a du sens dans une large mesure, mais il existe des outils (opensource et commercial), qui ont utilisé java pour l'accès h/w. Donc, oui, logiquement, cela n'a pas de sens d'en écrire un en Java. – Jay

+1

a élaboré un peu. Je me suis emporté sur un point et j'ai oublié d'inclure une conclusion :-) – Joey

1

L'accès matériel de bas niveau n'est tout simplement pas possible en Java pur, sauf s'il se trouve dans l'API standard, ce qui n'est pas le cas de Bluray.Par conséquent, vous devrez utiliser du code non-Java pour accéder au matériel; à ce moment-là, vous perdez l'indépendance de la plate-forme de Java, et vous avez forcément un système multilingue, ce qui est toujours plus difficile à programmer que d'utiliser une seule langue. Cependant, si vous pouvez trouver (ou, je suppose, développer) une API d'écriture Bluray multiplateforme ou un outil de ligne de commande dans (très probablement) C, alors il peut être logique d'écrire le reste de l'application dans Java en tant que wrapper GUI avec des fonctionnalités supplémentaires.

Questions connexes