что (клип) и DataLine.Info представляет ...? - PullRequest
0 голосов
/ 30 декабря 2010

Я получил этот код от одного из моих друзей.

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 Ответ

1 голос
/ 30 декабря 2010

DataLine - это интерфейс, который содержит вложенный класс «Info». Вот утверждение:

DataLine.Info di = ...

создает новый экземпляр класса Info, который определен в классе DataLine.

Заявление (Клип) - это то, что мы называем актерами. Он используется для преобразования объекта из типа в другой. Метод AudioSystem.getLine (di) возвращает объект типа Line. Таким образом, ваш друг преобразовал возвращенный объект в клип, чтобы использовать его для создания объекта c. Это разрешено и не будет генерировать ошибку, потому что c имеет тип Clip, который расширяет DataLine, а сама DataLine расширяет Line.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...