简体   繁体   English

为基于Java的音乐播放器创建CD刻录功能

[英]Creating a CD-burning feature for a music player based on Java

I'm trying to create a CD-burning feature for a Java-based music player for my school project. 我正在尝试为我的学校项目的基于Java的音乐播放器创建CD刻录功能。 Since I'm new to real-life programming (I've only learned to write codes on AP Computer Science A level), I don't know how I can apply the concepts I learned from APCS A to this task. 由于我是真实编程的新手(我只学会了在AP计算机科学A级上编写代码),所以我不知道如何将从APCS A中学到的概念应用于该任务。

A friend of mine who is studying computer science at graduate school told me to "look up the cd player control functions and add methods in those classes to read in data that you want to write to the CD, write it to a buffer, write everything in the buffer to the CD itself, clear the buffer and then write a new chunk of data into the buffer," but I can't quite grasp what this means, and tt's really hard to contact her right now because she's busy working on her dissertation. 我的一个朋友正在研究生院学习计算机科学,他的一个朋友告诉我“查找CD播放器控制功能,并在这些类中添加方法以读取要写入CD的数据,将其写入缓冲区,然后编写所有内容。在CD本身的缓冲区中,清除缓冲区,然后将新的数据块写入缓冲区中。”但是我不太了解这意味着什么,并且tt现在很难与她联系,因为她正忙于处理她论文。 Can someone from this forum please guide me through & explain the general concepts? 可以从这个论坛中有人指导我并解释一般概念吗? Thank you! 谢谢!

JIIC: Java ISO Image Creator JIIC:Java ISO映像创建者

JIIC is a streaming-based Java implementation of ISO 9660 for creating CD-ROM filesystem images ("ISO images") with the extensions El Torito, Joliet and Rock Ridge. JIIC是ISO 9660的基于流的Java实现,用于创建扩展名为El Torito,Joliet和Rock Ridge的CD-ROM文件系统映像(“ ISO映像”)。 It is based on the SABRE streaming API and provides an Ant task for easy integration into Java-based build processes. 它基于SABRE流API,并提供了一个Ant任务,可轻松集成到基于Java的构建过程中。 ISO 9660 ISO 9660

The ISO 9660 standard from 1988 describes the filesystem to be used for CD-ROMs. 1988年的ISO 9660标准描述了用于CD-ROM的文件系统。 ECMA-119 (2nd edition) is fully equivalent to ISO 9660. Several restrictions apply, including character sets, deep directory nesting and filename lengths. ECMA-119(第二版)完全等同于ISO9660。存在一些限制,包括字符集,深层目录嵌套和文件名长度。 As a result, extensions like El Torito (bootable CD-ROMs), Joliet (Unicode, longer filenames) and Rock Ridge (support for UNIX filesystem characteristics) were developed. 结果,开发了诸如El Torito(可启动CD-ROM),Joliet(Unicode,更长的文件名)和Rock Ridge(支持UNIX文件系统特性)的扩展。 SABRE 军刀

The Simple API for Binary REpresentations (SABRE) was developed by Michael Hartle at the Darmstadt University of Technology, Germany. 二进制表示的简单API(SABRE)由德国达姆施塔特工业大学的Michael Hartle开发。 It introduces a Java-based streaming API for processing binary data (as opposed to textual representations like XML) through a set of modules acting as a pipeline. 它引入了一个基于Java的流API,该API通过一组充当管道的模块来处理二进制数据(与诸如XML的文本表示形式相反)。 Read the article for details or visit its website. 阅读文章以了解详细信息或访问其网站。 JIIC JIIC

JIIC is the result of the practical part of my diploma thesis at the Darmstadt University of Technology, Department of Computer Science, Telecooperation Group. JIIC是我在达姆施塔特工业大学电信合作小组计算机科学系的文凭论文的实践部分的结果。 The diploma thesis was supervised by Prof. Dr. Max Mühlhäuser and Michael Hartle, developer of SABRE. 文凭论文由MaxMühlhäuser教授和SABRE的开发人员Michael Hartle指导。

JIIC and SABRE are provided as a set of Java 1.4 classes packed together in JAR files. JIIC和SABRE是打包在JAR文件中的一组Java 1.4类提供的。 The JIIC and SABRE source code is licensed under the LGPL. JIIC和SABRE源代码已根据LGPL许可。 JIIC is available from CVS, SABRE from SourceForge. JIIC可从CVS,SourceForge的SABRE获得。 Downloads JIIC 1.1.2 下载JIIC 1.1.2

All-in-one package
Updated test suite

JIIC 1.1.1 JIIC 1.1.1

All-in-one package
Updated test suite

JIIC 1.1 JIIC 1.1

All-in-one package

JIIC 1.0 JIIC 1.0

ISO9660 JAR
SABRE JAR
ISOtest class
Test suite

Changelog 更新日志

JIIC 1.1.2
    added support for long Joliet file names (up to 103 Unicode characters instead of 64, disabled by default) like mkisofs's -joliet-long option, as requested by Nigel Tamplin
JIIC 1.1.1
    fixed Joliet file name length check bug, reported by Alessandro Premoli and Christof Nef
JIIC 1.1 "JNode edition"
    Incorporated a patch by Gilles "Wooden" Duboscq for adding support for patching the El Torito boot image (like mkisofs -boot-info-table) and padding the ISO image to 150 sectors (like mkisofs -pad). See build.xml for the new options.

You'll probably want to find a good CD burning library such as this one or any other one - just make sure it works on whatever operating system you will be making this for. 您可能想要找到一个良好的CD刻录库,例如该库或其他任何 -只需确保它可以在要使用此库的任何操作系统上运行即可。 You probably won't be able to do this directly from Java (at least I am not aware of any way to write to a CD natively in Java) but you can do it in, for example, C++, and then use JNI to call it. 您可能无法直接从Java执行此操作(至少我不知道有任何以Java本机写入CD的方法),但是您可以在例如C ++中执行此操作,然后使用JNI进行调用它。 JNI will allow you to call C++ code from within Java. JNI将允许您从Java内部调用C ++代码。

一个更简单的解决方案是为开源cdrtools编写一个前端。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM