我必须从 URL 播放 .wav 文件,但得到UnsupportedFileException.
下面是代码。
public class LoopSound {
    public static void main(String[] args) throws Exception {
        HostnameVerifier hv = new HostnameVerifier() {
            @Override
            public boolean verify(String urlHostName, SSLSession session) {
                System.out.println("Warning: URL Host: " + urlHostName
                        + " vs. " + session.getPeerHost());
                return true;
            }
        };
        // Now you are telling the JRE to trust any https server.
        // If you know the URL that you are connecting to then this should
        // not be a problem
        try {
            trustAllHttpsCertificates();
        } catch (Exception e) {
            System.out.println("Trustall" + e.getStackTrace());
        }
        HttpsURLConnection.setDefaultHostnameVerifier(hv);
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        URL url = new URL(
          "https://74.127.51.154/SiPbx/playback.php?access=subscriber&login=501%40mix&domain=mix.nms.mixnetworks.net&user=501&type=vmail&file=vm-20130109213353000125_netsapiens_com.wav&time=20130110170638&auth=de5dda39287604a88fc4b80c467e161d&submit=PLAY");
        Clip clip = AudioSystem.getClip();
        AudioInputStream ais = AudioSystem.
          getAudioInputStream( url );
        clip.open(ais);
        clip.loop(0);
        javax.swing.JOptionPane.
          showMessageDialog(null, "Close to exit!");
      }
     private static void trustAllHttpsCertificates() throws Exception {
            // Create a trust manager that does not validate certificate chains:
            javax.net.ssl.TrustManager[] trustAllCerts =
            new javax.net.ssl.TrustManager[1];
            javax.net.ssl.TrustManager tm = new TempTrustedManager();
            trustAllCerts[0] = tm;
            javax.net.ssl.SSLContext sc =
            javax.net.ssl.SSLContext.getInstance("SSL");
            sc.init(null, trustAllCerts, null);
            javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(
            sc.getSocketFactory());
        }
     public static class TempTrustedManager implements
        javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {
    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
        return null;
    }
    public boolean isServerTrusted(
            java.security.cert.X509Certificate[] certs) {
        return true;
    }
    public boolean isClientTrusted(
            java.security.cert.X509Certificate[] certs) {
        return true;
    }
    public void checkServerTrusted(
            java.security.cert.X509Certificate[] certs, String authType)
            throws java.security.cert.CertificateException {
        return;
    }
    public void checkClientTrusted(
            java.security.cert.X509Certificate[] certs, String authType)
            throws java.security.cert.CertificateException {
        return;
    }
}
以下是获得的异常:
Exception in thread "main" javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input URL
    at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
    at LoopSound.main(LoopSound.java:35)
当我将上述 URL 放在浏览器的地址栏中时,我可以下载该文件,但我无法以编程方式播放。我该如何解决这个问题?
编辑
我将链接更改为
https://74.127.51.154/SiPbx/playback.php?access=subscriber&login=501%40mix&domain=mix.nms.mixnetworks.net&user=501&type=vmail&file=vm-20130109213353000125_netsapiens_com.wav&time=20130110170638&auth=de5dda39287604a88fc4b80c467e161d&submit=PLAY
现在上面的链接放在浏览器上下载文件。
但是当我现在执行程序时得到新的异常。
Exception in thread "main" javax.sound.sampled.LineUnavailableException: line with format ULAW 8000.0 Hz, 8 bit, mono, 1 bytes/frame,  not supported.
    at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source)
    at com.sun.media.sound.DirectAudioDevice$DirectClip.implOpen(Unknown Source)
    at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
    at com.sun.media.sound.DirectAudioDevice$DirectClip.open(Unknown Source)
    at com.sun.media.sound.DirectAudioDevice$DirectClip.open(Unknown Source)
    at LoopSound.main(LoopSound.java:36)
提前致谢。