what(clip)和DataLine.Info代表什么?

时间:2010-12-30 05:44:38

标签: java audio

我从我的一位朋友那里得到了这段代码。

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它是一个接口,这个语句的含义是什么DataLine.Info ....?

1 个答案:

答案 0 :(得分:1)

DataLine是一个包含嵌套类“Info”的接口。声明如下:

DataLine.Info di = ...

创建类Info的新实例,该类在DataLine类中定义。

语句(Clip)就是我们所说的演员。它用于将对象从类型转换为另一种类型。 方法AudioSystem.getLine(di)返回Line类型的对象。所以基本上,你的朋友将返回的对象转换为Clip,用于实例化对象c。 允许并且不会生成错误,因为c是Clip类型,它扩展了DataLine,而DataLine本身扩展了Line。

希望这有帮助!

相关问题