我从我的一位 friend 那里得到了这个代码。
import java.io.*;
import javax.sound.sampled.*;
public class xx
{
public static void main(String args[])
{
try
{
File f=new File("mm.wav");
AudioInputStream a=AudioSystem.getAudioInputStream(f);
AudioFormat au=a.getFormat();
DataLine.Info di=new DataLine.Info(Clip.class,au);
Clip c=(Clip)AudioSystem.getLine(di);
c.open(a);
c.start();
}
catch(Exception e)
{
System.out.println("Exception caught ");
}
}
}
但我不明白这一行的含义 Cilp c=(Clip)AudioSystem.getLine(di); (剪辑)代表什么......? 我的第二个问题是 DataLine 是什么,它是一个接口(interface)吗? DataLine.Info 这个语句的含义是什么?...?
最佳答案
DataLine 是一个包含嵌套类“Info”的接口(interface)。这里的声明:
DataLine.Info di = ...
创建 Info 类的新实例,该实例在 DataLine 类中定义。
语句(Clip)就是我们所说的强制转换。它用于将对象从一种类型转换为另一种类型。 AudioSystem.getLine(di) 方法返回 Line 类型的对象。所以基本上,你的 friend 将返回的对象转换为 Clip,用于实例化对象 c。 这是允许的,不会产生错误,因为 c 是 Clip 类型,它扩展了 DataLine,而 DataLine 本身扩展了 Line。
希望这有帮助!
关于java - (剪辑)和 DataLine.Info 代表什么...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4560291/