问题标签 [cd-rom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - 有没有办法检查 cd 驱动器是否有带有 python 的 CD
我正在尝试制作一个程序来检查何时插入具有特定名称“PlayMe”的cd,然后让程序播放其中的一个曲目。计算机是带有raspbian的树莓派4。
我试过只扫描文件树何时出现,它工作一次,但是当磁盘被物理移除时它仍然有树。我也尝试过使用 pygame 的 cdrom 方法get_empty
和get_name
. 我不知道有更好的方法来做到这一点。
当它运行时,我从cdrom.get_count
as 1 得到输出,但 get empty 给出:
“AttributeError:模块‘pygame.cdrom’没有属性‘get_empty’”
raspbian - 如何将 CD 音轨输入 ALSA 驱动的声音输出设备?
我正在使用没有内置声音解码器的 USB CD/DVD 驱动器,并通过 ALSA 控制它,它已经可以工作了。主机是带有当前 Raspbian 的 Raspberry Pi 3B。下面是对应的配置文件:
要从 CD-DA 读取音乐,我将使用CDIO++ 库。它的cd-info
实用程序可以识别驱动器和音频 CD:
我已经有一些代码可以将 PCM 数据发送到声卡,并且对 CDIO API(文档记录很少)有一些见解(我知道该readSectors()
方法用于从 CD 扇区一个扇区地读取声音数据),但不是关于如何正确地将数据从 CD-DA 输入传递到 ALSA 输出例程的真正线索。
请注意,这mplayer
对我来说是禁止的,因为此例程将成为更大解决方案的一部分。
任何帮助将不胜感激。
更新:音频 CD(2,352 字节)和声音输出(910 字节,至少在我的特定情况下)的不同块大小是否重要?
c++ - 为什么我的程序运行时 cdrom 不能完全读取 cdrom?
我正在编写一个应该从 cdrom 读取文件并找到特定文件的程序。我订阅了WM_DEVICECHANGE,用于 CdRom 设备并获取DBT_CUSTOMEVENT, DBT_DEVICEARRIVAL, DBT_DEVICEREMOVECOMPLETE
消息。
但是当我运行我的程序并插入 cdrom 时,我看不到磁盘内容,我看到类似的东西, 当我停止调试 cdrom 内容更改为时它是错误的 而且我不知道为什么会发生这种情况,当我调试我的程序时我注意到一个事实,在我插入磁盘后,我收到一条 DBT_DEVICEREMOVECOMPLETE 消息。我认为我的问题在于处理消息功能或打开的句柄,这不允许系统正确读取磁盘内容。谢谢你的帮助。
winapi - 您如何检测前/后间隙以计算 CD-ROM 中的确切轨道长度?
使用IOCTL_CDROM_READ_TOC_EX
来计算 CD-ROM 轨道的确切长度的一种简单方法是假设音轨具有 2 秒的前间隙,而后跟不同轨道类型的数据轨道具有 2 秒的后间隙。
但不幸的是,情况并非总是如此,例如多区段光盘。
所以我想出了以下方法来计算每个轨道的确切长度:
- 向后读取曲目的开头
- 发出
READ CD
命令读取 Q 子通道 - 只要
INDEX
电流TNO
为零,我们就有效地处于前|后间隙区
这按预期工作,我们可以发现间隙以计算扇区中的确切轨道长度。
然而,这个主题在 SCSI 多媒体命令规范中没有解释,这有点令人惊讶!
问题:
这是计算 CD-ROM 中每个轨道的确切长度的正确方法吗?
windows - windows下ffmpeg libcdio输入设备
我想在 windows 下使用 ffmpeg 工具来 cd 东西,但是我无法提供工作 -i 参数(我的 CD 驱动器是 F:\;我试过 F:\ 和 F:\Track01.cda):
[libcdio @ 043fe2a0] Could not open drive F:\
[libcdio @ 0635c2e0] Could not open drive F:\Track01.cda
有谁知道在带有libcdio的Windows下使用什么作为-i参数吗?
crc32 - 了解cdrom的crc32多项式
CDROM 数据使用使用 Reed-Solomon 的第 3 层错误检测和使用 32 位 CRC 多项式的 EDC。
ECMA 130标准将EDC CRC 多项式定义如下(第 16 页,第 14.3 页):
P(X) = (X^16 + x^15 + x^2 + 1).(x^16 + x^2 + x + 1)
和
首先使用数据字节的最低有效位。
通常,将多项式转换为其整数值形式非常简单。使用模数学,扩展多项式必须为P(X) = x^32 + x^31 + x^18 + x^17 + x^16 + x^15 + x^4 + x^3 + x^2 + x + 1
,因此值为0x8007801F
最后一句意味着多项式是相反的(如果我理解正确的话)。
但到目前为止,我还没有设法获得正确的价值。Cdrtools源代码使用 0x08001801 作为多项式值。有人可以解释他们是如何找到这个价值的吗?
python - pygame 找不到第二个 CD 驱动器
执行此 python 代码(无论是 python 2 还是 3),连接 1 个内部 DVD 驱动器和一个外部 USB 驱动器。我可以从 linux 访问两个驱动器,但 pygame 只能找到内部驱动器。难道我做错了什么?
performance - 从 CDROM 读取缓慢
我希望这不是太离题,但发现了一个有趣的问题。我有一张要备份的旧 CD。如果使用 System Drag 'n' Drop 从新鲜的副本(将 CD 用于第一次驯服),cp
或者rsync
它只是挂起。
这些文件是视频文件。我可以在 VLC 中播放视频文件。如果我观看整个视频,我可以立即将视频文件复制到我的硬盘上。我假设 VLC 已将数据加载到硬盘驱动器中。
我用 Rust 写了一个简单的cp
程序。它打开文件,并通过固定大小的缓冲区,将一个文件读入该缓冲区,然后将缓冲区写入另一个文件(基本上使用std::fs::copy
,一个文件到另一个文件)。
我尝试调整缓冲区大小(据我所知,这是我唯一可以更改的)以合理的速度复制数据。到目前为止,我发现的最好的是 1 KiB 和 96 KiB 缓冲区。但是复制速度非常慢。没有什么比实时观看视频更好的了。
我的问题是:
- 为什么会这样?
- vlc 做了什么操作系统没有做的事情?
c++ - 使用 Win32 C++ 查找 CD ROM 驱动器在您的哪个驱动器上
我在我的 Win32 C++ 应用程序上创建了一个“弹出”按钮,当我按下它时,它会打开 CD ROM 托盘。现在我已经硬编码了,知道我电脑上的 D 驱动器是 CD ROM 驱动器。我的问题是,如果我不知道光驱是哪个驱动器,或者在光驱不是D盘的计算机上,如何确定光驱是我计算机上的哪个驱动器并打开光盘托盘?我的代码如下所示。
datasource - 有什么方法可以让 cloud-init 从硬盘本身获取数据源?
我在我们的产品中实现了 cloud-init 功能。我被指派在不使用 cd-rom 的情况下执行此操作(实际上仅来自硬盘本身)。那么有什么办法吗?