【问题标题】:BigClip Won't Play .wav FileBigClip 无法播放 .wav 文件
【发布时间】:2019-04-12 00:02:51
【问题描述】:

我正在尝试将音频播放器添加到我的应用程序。这是处理音频播放的类中的代码:

package me.pogostick29.audiorpg.audio;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.TargetDataLine;

public class AudioPlayer {

    private AudioPlayer() { }

    private static AudioPlayer instance = new AudioPlayer();

    public static AudioPlayer getInstance() {
        return instance;
    }

    private static ArrayList<BigClip> clips = new ArrayList<BigClip>();

    private BigClip get(String name) {
        for (BigClip clip : clips) {
            if (clip.getName().equalsIgnoreCase(name)) return clip;
        }
        return null;
    }

    public void play(File file) {
        try {
            AudioInputStream audioIn = AudioSystem.getAudioInputStream(file);
            BigClip clip = get(file.getName());
            if (clip == null) {
                BigClip newClip = new BigClip(file.getName());
                clips.add(newClip);
                clip = newClip;
            }
            clip.open(audioIn);
            clip.start();
        }
        catch (Exception e) { e.printStackTrace(); }
    }
}

但是,当我尝试使用以下方式运行它时:

AudioPlayer.getInstance().play(new File("audio/people/blacksmith/blacksmith01a_new.wav"));

我得到以下堆栈跟踪:

javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
    at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1170)
    at me.pogostick29.audiorpg.audio.AudioPlayer.play(AudioPlayer.java:38)
    at me.pogostick29.audiorpg.person.people.Blacksmith.playDialogue(Blacksmith.java:12)
    at me.pogostick29.audiorpg.AudioRPG.main(AudioRPG.java:33)

Here 是我使用 Audition 导出文件时使用的格式。

【问题讨论】:

  • 执行此代码并报告结果。 File f = new File("audio/people/blacksmith/blacksmith01a_new.wav"); System.out.println("File: " + f.exists());

标签: java audio javasound audio-player


【解决方案1】:

没关系,我使用这个库修复了它:http://www.javazoom.net/javalayer/javalayer.html

【讨论】:

  • 请不要只发布一些工具或库作为答案。至少在答案本身中展示how it solves the problem。
  • 这个问题有6年了。别管它。
  • 我为什么不理会它?坏了就该走了,好就离开了。这个答案很糟糕,需要删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多