[英]Problems with java and reading data from a CD drive in linux
我一直在嘗試編寫一個簡單的音頻開膛手,我可以用來了解CODEC的不同之處,但是我已經陷入了第一步,我無法讓我的程序從CD中讀取,下面的代碼就是我一直在嘗試的使用
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;
public class learning
{
public static void main(String[] args) throws IOException
{
File cd = new File( "/dev/sr0" );
RandomAccessFile rawAccess = new RandomAccessFile( cd, "r" );
byte[] content = new byte[20];
rawAccess.seek(19613);
rawAccess.readFully(content);
System.out.println(content);
}
}
但它給了我下面的錯誤
Exception in thread "main" java.io.IOException: Input/output error
at java.io.RandomAccessFile.readBytes(Native Method)
at java.io.RandomAccessFile.read(RandomAccessFile.java:355)
at java.io.RandomAccessFile.readFully(RandomAccessFile.java:414)
at java.io.RandomAccessFile.readFully(RandomAccessFile.java:394)
at learning.main(learning.java:21)
我無法弄清楚為什么我得到這個,我雖然maby RandomFileAccess不是正確的類使用但我唯一能找到的說這應該工作
任何有關如何從java讀取CD的幫助將非常感激。
干杯丹尼爾
首先,您應該掛載登錄OS Linux的用戶可以訪問的目錄。 例如:/ mnt / cdrom或/ media / cdrom
之后打開你的mp3文件或音頻文件:
File cd = new File( "/dev/sr0/track1.mp3" );
要么
File cd = new File( "/dev/sr0/track1.dat" );
(不要忘記音頻或Mp3文件的擴展名)。
這不完全一樣,但我懷疑它會讓你去...
如果你不想使用內置的東西(出於教育原因), http://www.tritonus.org/是開源的,所以你可以看看他們是如何做到的。
此問題有一個與您的問題相關的相關問題和答案: 裝載和卸載硬盤驅動器
根據相關問題和接受的答案, 答案是“是”和“否”。 您可以提供使用適配器模式進行本機接口的Java API,但您還必須執行許多操作, 從而使解決方案不僅僅是Java,而是混合:
如果/dev/sr0
是目錄,則存在問題。 請嘗試傳遞其中一個音頻文件作為參數,例如
File cd = new File( "/dev/sr0/track1" );
這應該是有效的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.