当前位置: 首页 > 知识库问答 >
问题:

如何在我的Java程序中实现背景音乐?[重复]

常明亮
2023-03-14
import sun.audio.*;
import java.io.*;
public class musicTest
{
   public static void main(String[] args)
   {
   try
   {
      InputStream in = new FileInputStream("musicFile.mp3");
      AudioStream as = new AudioStream(in);
      AudioPlayer.player.start(as);
   }
   catch(FileNotFoundException e)
   {
      System.out.println("File does not exist or could not be found.");
      System.out.println("FileNotFoundException: " + e.getMessage());
   }
   catch(IOException e)
   {
      System.out.println("Problem reading file.");
      System.out.println("IOException: " + e.getMessage());
   }
   }
}

当我尝试编译程序时,它说,“AudioStream是内部专有API,可能会在未来的版本中被删除...AudioPlayer是内部专有API,在未来版本中可能会被删除..."

我该如何解决这个问题?

共有1个答案

龙霖
2023-03-14

试试这样的方法:

    String filename="foo.wav";
    Clip clip=AudioSystem.getClip();
    AudioInputStream inputStream=AudioSystem.getAudioInputStream(new BufferedInputStream(Audio.class.getResourceAsStream(filename)));
    if(inputStream!=null) {
        clip.open(inputStream);
        FloatControl gainControl=(FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
        gainControl.setValue(+6.0f); // ?
        clip.start();
        // maybe do not wait?
        while(clip.getMicrosecondLength()!=clip.getMicrosecondPosition())
            Thread.yield(); // wait
        // or at least don't wait here?
        Thread.sleep(500);
        clip.close();
    }

适用于视窗 8.1

确保 wave 文件与具有代码的类位于同一目录,并确保它位于类路径上。

此外,您可能希望在单独的线程上执行此操作。

 类似资料:
  • 通过下面的方式,播放一个音频文件作为背景音乐,可以控制背景音乐是否循环播放。 #include "SimpleAudioEngine.h" using namespace CocosDenshion; auto audio = SimpleAudioEngine::getInstance(); // set the background music and continuously play

  • 在SetCompressor lzma后面加以下代码: ReserveFile "${NSISDIR}\Plugins\system.dll" ReserveFile "天鹅湖.mp3" 然后在 Section 区段后面加入 Function 区段: Function .onInit InitPluginsDir File "/oname=$PLUGINSDIR\bgm_天鹅湖.mp3"

  • 我正在尝试在Frame窗口的背景中播放音频文件,我发现它比添加图片要复杂得多。 我找到了一个“教程”,应该如何添加音乐,它似乎相当简单,至少在所需的代码量方面。但是,我无法播放音频文件,它在说两件事…… 我试图播放一个我复制到我的java项目中的音频文件,它告诉我它找不到那个文件或目录。 第二-我给了这个方法一个音频文件的路径,它告诉我… 请记住,我很新,这个教程没有给很多帮助,所以我不知道这个游

  • 1.1. 获取背景音乐列表接口文档 1.1.1. 概述 1.1.2. 服务地址 1.1.3. 协议详解 1.1.4. 协议概述 1.1. 获取背景音乐列表接口文档 1.1.1. 概述 本文档目的是描述Rokid云背景音乐列表HTTP接口协议,面向想要获取背景音乐列表,并具有一定开发能力的开发者或用户。 1.1.2. 服务地址 环境 地址 用途 线上 https://mapi.open.rokid.

  • 如何在外部媒体文件关闭后自动恢复音乐文件?