当前位置: 首页 > wzjs >正文

网站运营配置网站建设素材图

网站运营配置,网站建设素材图,网站制作软件平台,网站logo设计流程在 Java 中,AudioSystem.getAudioInputStream() **不能直接接受文件路径字符串**(如 "C:/sounds/buzzer.wav" 或 "./buzzer.wav"),因为它没有提供这样的重载方法。但你可以通过不同的方式间接实现类似效果。以…

在 Java 中,`AudioSystem.getAudioInputStream()` **不能直接接受文件路径字符串**(如 `"C:/sounds/buzzer.wav"` 或 `"./buzzer.wav"`),因为它没有提供这样的重载方法。但你可以通过不同的方式间接实现类似效果。以下是详细解释和替代方案:

---

## **为什么不能直接传路径字符串?**
`AudioSystem.getAudioInputStream()` 的合法参数类型只有:
1. `File`  
2. `URL`  
3. `InputStream`  

**没有 `String` 路径的重载方法**,所以直接写 `getAudioInputStream("buzzer.wav")` 会编译报错。

---

## **替代方案(如何间接使用路径)**
### **1. 使用 `File` 对象(适用于绝对路径或明确路径)**
```java
File audioFile = new File("C:/sounds/buzzer.wav"); // 或相对路径 "./buzzer.wav"
AudioInputStream audioIn = AudioSystem.getAudioInputStream(audioFile);
```
- **适用场景**:已知音频文件的**完整磁盘路径**。
- **问题**:路径硬编码会导致移植性差(如换操作系统或打包成 JAR 后失效)。

---

### **2. 使用 `Class.getResource()`(推荐,适用于类路径资源)**
```java
AudioInputStream audioIn = AudioSystem.getAudioInputStream(
    getClass().getResource("/buzzer.wav"));
```
- **优点**:
  - 从 **classpath**(如 `src/main/resources/`)加载文件,**兼容 JAR 包**。
  - 路径前加 `/` 表示从类路径根目录查找。
- **文件位置示例**:
  ```
  project/
    src/
      main/
        resources/
          buzzer.wav  <—— 文件放这里
  ```

---

### **3. 使用 `ClassLoader.getResource()`(更灵活的类路径加载)**
```java
AudioInputStream audioIn = AudioSystem.getAudioInputStream(
    getClass().getClassLoader().getResource("buzzer.wav"));
```
- **区别**:
  - `getClass().getResource()`:路径以当前类所在包为基准(除非以 `/` 开头)。
  - `getClassLoader().getResource()`:始终从类路径根目录查找(无需 `/` 开头)。

---

### **4. 通过 `InputStream` 间接加载**
```java
InputStream inputStream = new FileInputStream("buzzer.wav");
AudioInputStream audioIn = AudioSystem.getAudioInputStream(inputStream);
```
- **注意**:需手动关闭 `InputStream`,否则可能资源泄漏。

---

## **为什么推荐 `getResource()` 而不是直接路径?**
| 方案 | 优点 | 缺点 |
|------|------|------|
| **`File` + 绝对路径** | 简单直接 | 硬编码路径,移植性差 |
| **`getResource()`** | 兼容 JAR、跨平台 | 需文件放在类路径(如 `resources/`) |
| **`InputStream`** | 灵活(可读网络/加密文件) | 需手动管理资源 |

**最佳实践**:  
- 如果音频是项目资源(如游戏音效),用 `getResource()`。  
- 如果需动态加载用户自定义文件,用 `File` 或 `InputStream`。

---

## **常见问题**
### **1. `getResource()` 返回 `null`?**
- 检查文件是否在 `resources/` 目录下。
- 检查文件名是否拼写错误(包括大小写)。
- 如果使用 Maven/Gradle,确保 `resources/` 目录被正确标记为资源文件夹。

### **2. 如何加载 `resources` 子目录下的文件?**
```java
// 文件结构:resources/sounds/buzzer.wav
AudioInputStream audioIn = AudioSystem.getAudioInputStream(
    getClass().getResource("/sounds/buzzer.wav"));
```

---

## **总结**
- **不能直接传路径字符串**,必须通过 `File`、`URL` 或 `InputStream` 加载。
- **推荐 `getResource()`**:适合打包在 JAR 中的资源文件。
- **`File` 方案**:适合明确知道文件路径的情况,但缺乏移植性。

在代码 getClass().getResource("/buzzer.wav") 中:

getClass() 获取的是当前执行该代码的对象的运行时类(Runtime Class)。具体来说:

  1. getClass()

    • 是 Object 类的方法,返回当前对象所属的 Class 对象。

    • 在这个例子中,它返回的是 包含这段代码的类的 Class 对象

  2. getResource()

    • 是 Class 类的方法,用于从类路径(classpath)加载资源。

    • /buzzer.wav 表示从类路径的根目录查找该文件。

就是获取资源路径  要通过这个类来获取

button.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseEntered(java.awt.event.MouseEvent evt) {button.setBackground(backgroundColor.brighter());}public void mouseExited(java.awt.event.MouseEvent evt) {button.setBackground(backgroundColor);}

监听里面实现接口来实现交互逻辑

AudioInputStream:只是原始音频数据的传输通道仅提供字节流形式的音频数据不具备播放控制能力(如开始/暂停/循环)类似"未拆封的快递包裹",只有内容没有操作接口Clip:完整的可播放音频实例将音频数据加载到内存并解码为可播放格式提供播放控制API(start/stop/loop等)类似"已经安装好的播放器",可以直接操作


文章转载自:

http://sphaE2QK.xjqhh.cn
http://lLuz0jRo.xjqhh.cn
http://uNEgHDer.xjqhh.cn
http://VsjJlllJ.xjqhh.cn
http://V9EmmDPh.xjqhh.cn
http://FjYitHwJ.xjqhh.cn
http://dCYZqtRS.xjqhh.cn
http://lvizIV1N.xjqhh.cn
http://uB93I1vV.xjqhh.cn
http://sRnDRcAI.xjqhh.cn
http://UlyZJTsu.xjqhh.cn
http://Mg8mXojR.xjqhh.cn
http://snWEYSUZ.xjqhh.cn
http://mLiNkvFp.xjqhh.cn
http://kzTmxem3.xjqhh.cn
http://8qUebYI7.xjqhh.cn
http://xDeFoQOI.xjqhh.cn
http://JUU5aliM.xjqhh.cn
http://wNrh9RZr.xjqhh.cn
http://merkr1YM.xjqhh.cn
http://p3Oe3gi2.xjqhh.cn
http://HGd7DYb4.xjqhh.cn
http://fHHc3uEF.xjqhh.cn
http://cyLFotuR.xjqhh.cn
http://HKtimXqW.xjqhh.cn
http://8SOE5aov.xjqhh.cn
http://008Nb8HF.xjqhh.cn
http://wCYLm42r.xjqhh.cn
http://x6X2XTMA.xjqhh.cn
http://S4wARZc5.xjqhh.cn
http://www.dtcms.com/wzjs/739517.html

相关文章:

  • 移动网站在线开发工具软件开发专业都学什么
  • django做网站好吗自己电脑做网站主机
  • 服务类型网站开发需要哪些技术长沙企业网站排名
  • 长春市城建网站制作网站问题和解决方法
  • 网站设计公司产品介绍那些做环保网站的好处
  • 鲜花网站建设规划书app制作费用多少钱
  • 重庆川九建设有限责任公司官方网站石家庄营销网站建设
  • 免费空间asp网站源码学习网站 现状
  • 网站开发一般多少钱福州发布最新通告
  • 铜仁网站建设哪家专业优书网下载
  • 济南网站建设 泉诺网站网络拓扑图
  • 招聘网站开发方案doc163企业邮箱服务器
  • 11号在线 网站开发六安市网站制作公司
  • 射洪网站建设北京网站设计研究与开发公司
  • 网站制作工具推荐做网站对于不同的分辨率
  • 太原网站建设与维护wordpress 数据库 破解版
  • 家乡网站建设策划书网站建设 考核指标
  • 单位网站的建设建设一个视频教学网站
  • 哪些网站可以做画赚钱wordpress mycred汉化
  • 网站运营推广这么做ip代理免费
  • 金科网站建设网站开发人员培训
  • 孝感网站建设软件网站建设服务协议 百度
  • vue响应式网站开发有哪些官方网站做的比较好
  • 怎么免费注册自己的网站wordpress短信登陆
  • 男女做的那些事情的网站vue开发视频网站
  • 外贸建站 厦门沈阳网页模板建站
  • 卓伊科技网站建设flash网站免费源码带后台
  • 做电商网站价格湿地公园网站建设
  • 电子商务网站建设方案推荐做最好的网站新新
  • 网站的建设方面爱站权重查询